socket编程之TCP服务端与客户端实现

服务端:

import socket
# 创建TCP socket
tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 通过setsocktopt()方法,在程序执行结束后释放端口
tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)
# 设置本地ip信息, 并绑定本地信息,(ip不写默认本地所有网卡)
address = ("", 4433)
tcp_server_socket.bind(address)

# 使用socket创建套接字默认属性是主动的,使用listen设置为被动,等待别人链接
tcp_server_socket.listen(128)
# 客户端链接上,创建一个新的套接字用于通讯
client_socket, client_address = tcp_server_socket.accept()
# print(client_socket, client_address)
while True:
    # 接收对方发送过来的数据
    recv_data = client_socket.recv(1024)
    print("接收到的数据为:", recv_data.decode("gbk"))
    # 响应客户端数据
    client_socket.send("It's ok".encode("utf-8"))
    #关闭服务端

    client_socket.close()

# 关闭监听套接字
tcp_server_socket.close()

客户端:

import socket
# 创建TCP套接字
tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 输入服务器IP端口信息
server_ip = input("请输入服务器ip:")
server_port = int(input("请输入服务器端口号:"))

#指定服务器Ip端口
server_address = (server_ip ,server_port)
# 链接服务器
tcp_client_socket.connect(server_address)

# 输入要发送的数据
send_data = input("请输入发送的数据:")

# 发送数据,编码
tcp_client_socket.send(send_data.encode("utf-8"))

# 接收数据,并指定接收最大字节数
recv_data = tcp_client_socket.recv(1024)
# 对接收的数据进行解码
recv_connect = recv_data.decode("gbk")
print(recv_connect)

# 关闭套接字
tcp_client_socket.close()

猜你喜欢

转载自blog.csdn.net/qq_30656253/article/details/79797291