本次使用tcp协议传输数据(即套件字选择tcp对应的参数,SOCKET_STREAM)
一、前置条件:
导入socket包,一个局域网下两台电脑(或者本地创建一个win虚拟机)
二、创建服务端
1、创建套接字
2、绑定本地信息
3、使用listen将默认的套接字由主动变为被动
4、等待客户端的链接(accept),并创建套接字为链接的客户端服务
5、接收客户端的数据
6、向客户端发送数据
7、关闭套接字
from socket import *
def main():
#创建套接字,监听套接字 负责等待新客户端进行链接
tcp_server_socket = socket(AF_INET,SOCK_STREAM)
#绑定本地信息
tcp_server_socket.bind(('' ,7890))
#将套接字由主动变为被动
tcp_server_socket.listen(128)
print('-------------listen---------')
#accept 等待客户端的链接 accept产生的新套接字用来为客户端服务
client_scoket,client_addr = tcp_server_socket.accept()
print('-------------accept---------')
print(client_addr)
#接收客户端的信息
recv_data=client_scoket.recv(1024)
print(recv_data.decode('utf-8'))
#向客户端发送信息
client_scoket.send('呵呵呵呵'.encode('utf-8'))
#关闭套接字
client_scoket.close()
tcp_server_socket.close()
if __name__ == '__main__':
main()
三、创建客户端
1、创建套接字
2、链接服务端
3、发送/接收数据
4、关闭套接字
from socket import *
def main():
# 创建套接字
tcp_clien_socket = socket(AF_INET, SOCK_STREAM)
# 链接服务器
server_addr = ('192.168.25.234', 7890)
tcp_clien_socket.connect(server_addr)
# 发送/接收数据
send_data = input('请输入要发送的数据')
tcp_clien_socket.send(send_data.encode('utf-8'))
rs_data = tcp_clien_socket.recv(1024)
print(rs_data.decode('utf-8'))
# 关闭套接字
tcp_clien_socket.close()
if __name__ == '__main__':
main()