代码如下:

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需要先建立连接,建立成功后才能进行通讯,然后是客户端和服务端建立连接后,服务端需要分配给客户端一个新的套接字,和之前的套接字不一样,这个套接字用来标记这个客户端,单独为这个客户端服务于是就存在两个套接字,所以再关闭套接字的时候,也要关闭两个套接字。

posted on 2020-12-25 15:44  松风新雪初霁  阅读(226)  评论(0)    收藏  举报