主机间通信python实现--TCP聊天器实现(带exe可执行文件)

client:(发送方)

import socket

def main():
    # 创建套接字
    tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)#tcp流
    #连接服务器
    server_ip = input("请输入要连接的服务器ip")
    # server_port = int(input("请输入要连接的服务器端口"))
    server_port = 7788
    server_addr = (server_ip, server_port)
    tcp_socket.connect(server_addr)


    #发送数据/接受数据
    send_data = input("请输入要发送的数据").encode("gbk")
    tcp_socket.send(send_data)
    #关闭套接字
    tcp_socket.close()

if __name__ == "__main__":
    main()

server:(接收方)

import socket

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

    #绑定本地信息
    tcp_server_socket.bind(("", 7788))

    #让套机字由主动变为被动
    tcp_server_socket.listen(128)#监听套接字负责等待新的客户端
    print("wait...")

    while True:#--循环为多个客户端服务
        #等待连接
        new_client_socket, client_addr = tcp_server_socket.accept()#用于产生新的套接字为客户端服务
        print("new socket come!", client_addr)

        while True:#--循环为一个客户端服务多次
            #接收客户端发送古来的数据
            #recv解堵塞有两种情况: 1.客户端发过来了数据 2.客户端调用了close关闭了服务
            recv_data = new_client_socket.recv(1024).decode("gbk")


            #判断用户是否关闭服务
            if recv_data:#有数据
                print(recv_data)
                #显示回复信息
                new_client_socket.send("ok".encode("gbk"))
            else:#调用了close函数
                break

        #关闭套接字--关闭本次客户端的服务
        new_client_socket.close()
        print("为" + client_addr[0] + "服务完毕!")

    #如果把监听套接字关闭了那么意味着不会再有新的客户端进来
    tcp_server_socket.close()




if __name__ == "__main__":
    main()

-源代码及可执行程序链接
链接:https://pan.baidu.com/s/1j1a7dcn7VQFTPh5A-EYLIg
提取码:5kn3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值