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的主要内容,如果未能解决你的问题,请参考以下文章

golang代码片段(摘抄)

常用python日期日志获取内容循环的代码片段

python 有用的Python代码片段

Python 向 Postman 请求代码片段

python [代码片段]一些有趣的代码#sort

使用 Python 代码片段编写 LaTeX 文档