首页 > 编程语言 >使用 Python 的 socket 库来实现一个简单的 Socket 示例

使用 Python 的 socket 库来实现一个简单的 Socket 示例

时间:2023-04-15 13:34:14浏览次数:45  
标签:socket 示例 Python 服务器端 Socket 端口号 clientsocket 客户端

以下是一个简单的服务器端和客户端的例子:服务器端:

python
import socket

# 创建 socket 对象
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 获取本地主机名
host = socket.gethostname()

# 设置端口号
port = 9999

# 绑定端口号
serversocket.bind((host, port))

# 设置监听队列
serversocket.listen(5)

while True:
    # 建立客户端连接
    clientsocket, addr = serversocket.accept()

    print("连接地址: %s" % str(addr))

    msg = '欢迎访问我的服务器!' + "\r\n"
    clientsocket.send(msg.encode('utf-8'))

    clientsocket.close()
客户端:
python
import socket

# 创建 socket 对象
clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 获取本地主机名
host = socket.gethostname()

# 设置端口号
port = 9999

# 连接服务,指定主机和端口号
clientsocket.connect((host, port))

# 接收小于 1024 字节的数据
msg = clientsocket.recv(1024)

clientsocket.close()

print(msg.decode('utf-8'))
以上示例中,服务器端首先创建了一个 Socket 对象,并设置端口号,然后通过 bind() 方法将该 Socket 对象绑定到指定的主机和端口号,最后通过 listen() 方法设置监听队列。当有客户端连接时,accept() 方法将返回一个新的 Socket 对象和客户端地址,服务端利用该 Socket 对象与客户端通信。客户端创建 Socket 对象后通过 connect() 方法连接服务器端,随后通过 send() 方法发送数据,并等待服务器端的响应,最后通过 close() 方法关闭 Socket 连接。

标签:socket,示例,Python,服务器端,Socket,端口号,clientsocket,客户端
From: https://www.cnblogs.com/8765h/p/17320953.html

相关文章

  • python3正则-表达式
    1、介绍这里整理了表达式,即pattern参数的语法。其本质是一个str类型。2、开始和结尾(1)^^匹配字符串的开头(2)$$匹配字符串的末尾(3)整体匹配同时使用^和$3、匹配次数(1)贪婪匹配和非贪婪匹配模式贪婪匹配,在允许的范围内尽可能多的匹配表达式次数。比如*、+、{n,m}等......
  • python3正则-修饰符flags
    1、介绍在re模块的函数中,多数允许设置修饰符flags参数,其用于对匹配做优化和个性设置。2、修饰符修饰符实质上是int参数类型,可以直接指定int类型,也可以通过re调用变量名称指定。修饰符描述re.I使匹配对大小写不敏感re.L做本地化识别(locale-aware)匹配re.M多行......
  • python3正则-Match类
    1、介绍re.match、re.fullmatch和re.search这三个函数,如果存在匹配,其返回pattern初次匹配的结果,类型就为re.Match。2、类和初始化3、方法pattern="(ab)c"result=re.match(pattern=pattern,string="abcdef")print(result)(1)start获取pattern整体匹配的开始索引,返回类......
  • python3正则-编译和其他
    1、介绍将作为pattern参数的str类型,编译返回Pattern类型,方便后续调用,提高效率。re模块下存在多个函数,可以进行编译,返回类型是Pattern。Pattern类具有和re正则匹配函数类似的方法,当然在参数上略有不同,比如是将待匹配文本作为Pattern类的参数。2、compile函数pattern=re.comp......
  • python3时间
    1、介绍time模块是python的内部模块。2、函数#返回float类型,1670592065.0852547形式#print(time.time())#print(type(time.time()))#休眠,单位秒#time.sleep(5)#print(123)#返回int类型,1670592289035206400形式#print(time.time_ns())#print(type(time.time_......
  • python3正则-替换和切割函数
    1、介绍这里整理sub、subn和split三个函数的使用。2、sub函数sub(pattern,repl,string,count=0,flags=0)pattern,正则表达式repl,替换文本string,待处理字符串count,表示替换的最大次数。默认为0表示全部替换flags,标志,处理模式作用是在flags代表的模式下,匹配strings指......
  • python3正则-多匹配函数
    1、介绍这里介绍findall和finditer两个函数。2、findall函数findall(pattern,string,flags=0)pattern,正则表达式string,待处理字符串flags,标志,处理模式返回类型为list,如果不存在匹配,返回空列表[]。如果存在匹配,则返回全部匹配项,这里需要注意()的影响2.1无()importr......
  • Kali中切换到Python2.7 和 安装pip
    sudoupdate-alternatives--install/usr/bin/pythonpython/usr/bin/python21Kali是自带python2.7的,但是我的用正常的update-alternatives 没法切换,会报错,说找不到,可以替换的版本.使用上方命令就可以使用啦!!!OK啦!下面安装pip现在 /usr/bin下,创建一个文件夹,起......
  • python3正则-单匹配函数
    1、介绍re模块是python3用于处理正则的模块。这里介绍三个函数,re.match、re.fullmatch和re.search的使用。其都是如果匹配,则返回re.Match类对象,为初次匹配项。不匹配则返回None。且()不影响匹配结果,只是匹配过程中对需要匹配的描述。2、match函数match(pattern,string,fla......
  • LYT-C#-Socket-ServerTEST
    usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Net;usingSystem.Net.Sockets;usingSystem.Text;usingSystem.Threading.Tasks;namespaceCrltest{publicclassProgram{staticstringmsg=null;st......