python网络编程之socket
TCP_Client
- 创建套接字
- 链接服务器
- 发送数据
- 关闭套接字
import socket
def main():
tcp_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server_ip=input("请输入链接服务器的IP:\n")
server_port=int(input('请输入链接服务器的port:\n'))
server_addr=(server_ip,server_port)
tcp_socket.connect(server_addr)
send_data=input('请输入要发送的数据:\n')
tcp_socket.send(send_data.encode('utf-8'))
tcp_socket.close()
if __name__=='__main__':
main()
请输入链接服务器的IP:
192.168.43.54
请输入链接服务器的port:
8080
请输入要发送的数据:
windows
TCP_Server
- 创建套接字
- bind绑定IP和Port
- listen使套接字变为可以被动链接
- accept等待客户端的连接
- recv/send接收发送数据
单次服务
import socket
def main():
tcp_ser=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcp_ser.bind(('',7890))
tcp_ser.listen(128)
print('----------------------1----------------------------------')
client_socket,client_addr=tcp_ser.accept()
print('----------------------2-----------------------------------')
print(client_addr)
recv_data=client_socket.recv(1024)
print(recv_data)
client_socket.send('thank you'.encode('utf-8'))
client_socket.close()
tcp_ser.close()
if __name__=='__main__':
main()
循环多客户端单次服务
import socket
def main():
tcp_ser=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcp_ser.bind(('',7890))
tcp_ser.listen(128)
while True:
print('等待一个新客户端的到来........')
client_socket,client_addr=tcp_ser.accept()
print('一个新的客户端已经到来:%s' % str(client_addr))
recv_data=client_socket.recv(1024)
print('客户端发送过来的请求:%s' % recv_data.decode('utf-8'))
client_socket.send('thank you'.encode('utf-8'))
client_socket.close()
print('已经服务完毕')
tcp_ser.close()
if __name__=='__main__':
main()
等待一个新客户端的到来........
一个新的客户端已经到来:('192.168.43.54', 34482)
客户端发送过来的请求:How are you?
已经服务完毕
等待一个新客户端的到来........
一个新的客户端已经到来:('192.168.43.209', 58822)
客户端发送过来的请求:hahahah
已经服务完毕
等待一个新客户端的到来........
一个新的客户端已经到来:('192.168.43.209', 58829)
客户端发送过来的请求:hahahah
已经服务完毕
等待一个新客户端的到来........
循环多客户端多次服务
import socket
def main():
tcp_ser=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcp_ser.bind(('',7890))
tcp_ser.listen(128)
while True:
print('等待一个新客户端的到来........')
client_socket,client_addr=tcp_ser.accept()
print('一个新的客户端已经到来:%s' % str(client_addr))
while True:
recv_data=client_socket.recv(1024)
print('客户端发送过来的请求:%s' % recv_data.decode('utf-8'))
if recv_data:
client_socket.send('thank you'.encode('utf-8'))
else:
break
client_socket.close()
print('已经服务完毕')
tcp_ser.close()
if __name__=='__main__':
main()
等待一个新客户端的到来........
一个新的客户端已经到来:('192.168.43.209', 59806)
客户端发送过来的请求:hahahah
客户端发送过来的请求:hahahah
客户端发送过来的请求:hahahah
客户端发送过来的请求:hahahah
客户端发送过来的请求:hahahah
客户端发送过来的请求:
已经服务完毕
等待一个新客户端的到来........
一个新的客户端已经到来:('192.168.43.209', 59813)
客户端发送过来的请求:hahahah
客户端发送过来的请求:hahahah
客户端发送过来的请求:hahahah
客户端发送过来的请求:hahahah
客户端发送过来的请求:
已经服务完毕
等待一个新客户端的到来........
一个新的客户端已经到来:('192.168.43.54', 34484)
客户端发送过来的请求:1111111111111
客户端发送过来的请求:1111111111111
客户端发送过来的请求:1111111111111
客户端发送过来的请求:1111111111111
客户端发送过来的请求:1111111111111
客户端发送过来的请求:1111111111111
客户端发送过来的请求:1111111111111
客户端发送过来的请求:
已经服务完毕
等待一个新客户端的到来........