python socket
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python socket相关的知识,希望对你有一定的参考价值。
最简单的服务端和客户端代码:
服务端:
import socket //导入socket模块
s=socket.socket() //利用socket中的socket()函数创建套接字对象s
host=socket.gethostname() //利用socket模块中的gethostname()函数获取本地的主机名
port=12345 //设置连接所用的端口
s.bind((host,port)) //将端口和刚刚创建的套接字对象s利用bind()函数进行绑定
s.listen(5) //监听,最大可连接数5
while True:
c,addr=s.accept() //客户端连接过来后,accept()函数会返回两个数据(可用来和相应客户端收发数据的对象,客户端的ip),序列解包后赋给对象c和变量addr
print("Got connection from ‘%s‘"%addr) //不解释
c.send(‘Thank you for connecting‘) //利用象c给相应的客户端发送数据
c.close() //关闭对象c
#---------------------------------------------------------------------------------------------
客户端:
import socket //导入socket模块
s=socket.socket() //创建套接字对象s
host=socket.gethostname() //获取本地主机ip
port=12345 //设置端口号
s.connect((host,port)) //引用套接字对象s中的connect()函数和服务端发起连接
print(s.recv(1024)) //服务端连接后会返回一个空字符串,如果服务端设置一个send(),则返回这个send中的字符串,recv()函数就是接收这个字符串,一次最大接收的字节在此例中为1024
s.close //关闭套接字对象
#------------------------------------------------------------------------------------------------
*.如果按照上面这个代码去执行,只能是在本地,因为host设置的是本地
socket.listen(backlog)
监听连接到该服务器套接字的连接,backlog参数指定最大的连接数队列数,该数最小为1,最大是多少和所用系统有关
socket.recv(bufsize[,flags])
接受从服务端返回的数据,返回值是一个代表返回的数据的字节对象,bufsize指定一次接收数据的最大字节数,flags参数为可选的,具体意义看unix手册中的recv(2),flags默认为0
以上是关于python socket的主要内容,如果未能解决你的问题,请参考以下文章