代码如下:
import socket
def client_main():
#1创建套接字
client_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#2 连接服务器
client_socket.connect(('192.168.100.38',8080))
#3 发送数据
client_socket.send('that is from client'.encode('utf-8'))
#4 接收数据
recv_data = client_socket.recv(1024)
print("client received:%s"%recv_data.decode('utf-8'))
#5 关闭套接字
client_socket.close()
def server_main():
#1 create socket
server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#2 bind port
server_socket.bind(('',8080))
#3 listen
server_socket.listen(128)
#4 set client _socket
client_socket,client_addr = server_socket.accept()
#5 receive data
recv_data = client_socket.recv(1024)
print("server received:%s-%s"%(str(client_addr),recv_data.decode('utf-8')))
# 6 response
client_socket.send('server received!'.encode('utf-8'))
#7 close
client_socket.close()
server_socket.close()
if __name__ == "__main__":
client_main()
server_main()
TCP的使用和UDP的使用不同之处在于套接字格式不一样,UDP的使用是直接发送数据,而TCP需要先建立连接,建立成功后才能进行通讯,然后是客户端和服务端建立连接后,服务端需要分配给客户端一个新的套接字,和之前的套接字不一样,这个套接字用来标记这个客户端,单独为这个客户端服务于是就存在两个套接字,所以再关闭套接字的时候,也要关闭两个套接字。