创建和运行TCP服务端的五个步骤
1、创建Socket,绑定Socket到本地IP与端口
2、开始监听连接
3、进入循环,不断接收客户端的连接请求
4、接收传来的数据,并发送给对方数据
5、传输完毕后,关闭Socket
例子:
import socket import threading import time def dealClient(sock, addr): print('Accept new connection from %s:%s...' % addr) sock.send(b'Hello,I am server!') while True: data = sock.recv(1024) time.sleep(1) if not data or data.decode('utf-8') == 'exit': break print('--->>%s' % data.decode('utf-8')) sock.send(('Loop_Msg:%s!' % data.decode('utf-8')).encode('utf-8')) sock.close() print('Connection from %s:%s closed.' % addr) if __name__ == '__main__': sockets = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sockets.bind(('127.0.0.1', 9999)) sockets.listen(5) print('waiting for connection...') while True: sock, addr = sockets.accept() t = threading.Thread(target=dealClient, args=(sock, addr)) t.start()
创建客户端的步骤
1、创建Socket,连接远程地址
2、连接后发送数据和接收数据
3、传输完毕后关闭socket
例子:
import socket sockets = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sockets.connect(('127.0.0.1', 9999)) print('--->>' + sockets.recv(1024).decode('utf-8')) sockets.send(b'Hello,I am a client.') print('--->>' + sockets.recv(1024).decode('utf-8')) sockets.send(b'exit') sockets.close()
运行结果:
服务端:
waiting for connection...
Accept new connection from 127.0.0.1:55970...
--->>Hello,I am a client.
Connection from 127.0.0.1:55970 closed.
客户端:
--->>Hello,I am server!
--->>Loop_Msg:Hello,I am a client.!