Bootstrap

TCP客户端服务器(Python)

TCP客户端程序:

import socket


def main():
    #  创建tcp
    tcp_client_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

    #  链接套接字
    # sever_ip=input("输入对方ip:")
    # sever_port=int(input("输入对方端口:"))
    # sever_addr=(sever_ip,sever_port)
    tcp_client_socket.connect(sever_addr)
    while True:
        #  数据发送
        tcp_data=input("输入发送的内容:")
        tcp_client_socket.send(tcp_data.encode("utf-8"))

        #  服务器返回数据
        rev_data=tcp_client_socket.recv(1024)
        print("服务器返回的消息:",rev_data)
    #  关闭套接字
    tcp_client_socket.close()
if __name__ == '__main__':
    main()

TCP服务器程序:

当TCP客户端实现与服务器连接时,服务器给客户端创建一个新的服务套接字,类似10010客服,当你打通10010服务时,系统会随机给你分配一个客服与你交流。

import socket


def main():
    #  创建套接字
    tcp_sever_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

    #  绑定本地信息
    tcp_sever_socket.bind(('',7890))

    #  让默认是套接字主动变为被动(listen)三次握手在这里完成
    tcp_sever_socket.listen(128)

    while True:
        #  等待客户端的链接
        print("等待新的客户端到来")
        new_client_socket,client_addr=tcp_sever_socket.accept()  #  服务套接字
        print("客户端已经到来:%s"%str(client_addr))

        while True:
            #  接受客户端发过来的请求
            recv_data=new_client_socket.recv(1024)
            print("客户端发来的请求:%s"%recv_data)
            #  如果recv解阻塞,有两种方式
            #  1.客户端发来数据
            #  2.客户端close导致了recv解阻塞
            if recv_data:
                #回送一部分数据给客户端
                new_client_socket.send('hahhah'.encode("utf-8"))
            else:
                break
        #  关闭套接字
        new_client_socket.close()
        print("已经为这个客户端服务完毕")
    tcp_sever_socket.close()
if __name__ == '__main__':
    main()

 

;