python-网络-tcp
标签(空格分隔): python
TCP[client]-发送数据
from socket import *
s = socket(AF_INET, SOCK_STREAM)
s.connect(('192.168.135.1', 8080))
sendData = input('send:')
s.send(sendData.encode('gbk'))
ret = s.recv(1024)
print(ret.decode('gbk'))
s.close()
- SOCK_STREAM 创建TCP套接字
- s.connect 连接tcp服务端 参数是 ip port 元组
- s.send 发送数据
- s.recv(1024) 接收数据
- s.close() 关闭套接字
TCP[server]-接收数据
from socket import *
s = socket(AF_INET, SOCK_STREAM)
s.bind(('', 9090))
s.listen(128)
news, addr = s.accept()
cont = news.recv(1024)
print('接收的数据是:%s'%cont.decode('gbk'))
sendto = input('要回复的数据:')
news.send(sendto.encode('gbk'))
new.close()
s.close()
- bingd(()) 参数是元组
- listen() 使用socket创建的套接字默认的属性是主动的,使用listen将其变为被动的,这样就可以接收别人的链接了
- s.accept() 如果有新的客户端来链接服务器,那么就产生一个新的套接字专门为这个客户端服务 news用来为这个客户端服务, s就可以省下来专门等待其他新客户端的链接