标签:监听端口 大写 table 之间 本机 基于 创建 连接数 seq
一、客户端:
1、导入socket库
import socket
2、指定协议类型
client = socket.socket( ) #不填默认是socket.AF_INET,socket.SOCK_STREAM)
协议类型有:
socket 类型 |
描述 |
socket.AF_UNIX |
用于同一台机器上的进程通信(既本机通信) |
socket.AF_INET |
用于服务器与服务器之间的网络通信IPV4方式 |
socket.AF_INET6 |
基于IPV6方式的服务器与服务器之间的网络通信 |
socket.SOCK_STREAM |
基于TCP的流式socket通信 |
socket.SOCK_DGRAM |
基于UDP的数据报式socket通信 |
socket.SOCK_RAW |
原始套接字,普通的套接字无法处理ICMP、IGMP等网络报文,而SOCK_RAW可以;其次SOCK_RAW也可以处理特殊的IPV4报文;此外,利用原始套接字,可以通过IP_HDRINCL套接字选项由用户构造IP头 |
socket.SOCK_SEQPACKET |
可靠的连续数据包服务 |
3、连接服务器
client.connect((‘www.baidu.com‘,80)) #使用元组tuple的方式传递两个参数
4、发送数据
client.send(b‘你好‘) #传送的数据必须为字节的方式
5、接收数据
data = client.recv(1024) #每次接收1K数据,data为接收到的数据
6、关闭socket
client.close()
二、服务器端:
1、选择协议:
server = socket.socket()
2、监听端口:
server.bind((‘localhost‘,80)) #使用元组tuple方式传参
server.listen(3) #监听端口,并设置最大等待连接数
3、等待客户端连接:
while True:
conn,addr = server.accept() #接收新连接
t = threading.Thread(target = tcplink,args=(conn,addr)) #创建新线程处理tcp连接
t.start()
4、与客户端数据交互
while True:
data = conn.recv(1024) #接收1kb数据
conn.send(data.upper()) #将客户端的数据小写变大写传回去
十五、python开发之网络通信socket
标签:监听端口 大写 table 之间 本机 基于 创建 连接数 seq
原文地址:https://www.cnblogs.com/caibaofei/p/9073151.html