python用socket模块实现简单的tcp客户端,服务器聊天

socket模块最简单的tcp客户,服务端的通信实现
实现步骤:
下面是tcp通信的图解:

在这里插入图片描述
代码依照上图布局:

(1)tcp客户端

import socket

def main():
	#1.建立一个套接字socket
	tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)	

	#2.链接一个服务器connect
	server_ip = input("对方ip:")
	server_port =int(input("对方端口:"))
	
	tcp_socket.connect((server_ip,server_port))

	while True:
		#3.发送信息
		send_data = input("请输入你想发送的内容:")
		#发送的内容要进行编码
		tcp_socket.send(send_data.encode("utf-8"))

		#4.接受信息
		recv_data = tcp_socket.recv(1024)
		#接收的内容需要解码。因为socket是以字节流进行传输的
		print(recv_data.decode("utf-8"))

	#5关闭
	tcp_socket.close()
	

if __name__ == "__main__":

	main()

(2)tcp服务端代码:

import socket


def main():
    # 1.创建一个tcp套接字socket
    tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    # 2.绑定本地地址,端口号bind
    tcp_socket.bind(("", 7758))

    # 3.监听个数 listen(128)
    tcp_socket.listen(128)

    while True:

        print("***************服务器开始*****************")
        print("")
        # 4.接受客户进来,accept 返回元祖,一个变量提供当前进来客户到的服务
        # 第二个变量继续等待下一个客户
        new_server, address = tcp_socket.accept()
        while True:
            # 5.接受客户信息
            mess = new_server.recv(1024)

            if mess:
                print(mess.decode("utf-8"))
                # 5.给客户返回信息
                send_message = input("请输入你要回复的信息:")
                new_server.send(send_message.encode("utf-8"))

            else:
                break

        # 6.关闭当前服务的客户
        new_server.close()

    # 7.关闭套接字
    tcp_socket.close()


if __name__ == "__main__":
    main()

猜你喜欢

转载自blog.csdn.net/zhangbiaoxiaoming/article/details/84202801