2024.9.3作业

一.

1.服务器代码

import socket

# 创建socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 获取本地主机名
host = socket.gethostname()

port = 9999

# 绑定端口号
server_socket.bind((host, port))

# 设置最大连接数,超过后排队
server_socket.listen(5)

while True:
    # 建立客户端连接
    client_socket, addr = server_socket.accept()

    print("连接地址: %s" % str(addr))
    
    message = '欢迎访问服务器!' + "\r\n"
    client_socket.send(message.encode('utf-8'))
    
    while True:
        # 接收小于 1024 字节的数据
        data = client_socket.recv(1024)
        
        if not data:
            # 如果没有数据,跳出循环
            break
        else:
            # 打印接收到的数据
            print("收到消息:" + data.decode('utf-8'))
            # 发送数据
            client_socket.send(data)
    
    # 关闭连接
    client_socket.close()

server_socket.close()

2.客户端代码

import socket

# 创建socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 获取本地主机名
host = socket.gethostname()

port = 9999

# 连接服务,指定主机和端口
client_socket.connect((host, port))

# 接收小于 1024 字节的数据
msg = client_socket.recv(1024)

print(msg.decode('utf-8'))

while True:
    # 用户输入信息
    message = input('')
    if message == 'exit':
        break
    # 发送数据
    client_socket.send(message.encode('utf-8'))
    
    # 接收反馈信息
    msg = client_socket.recv(1024)
    print(msg.decode('utf-8'))

# 关闭连接
client_socket.close()

二.

1.服务端代码

import socket

# 创建UDP socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# 获取本地主机名
host = socket.gethostname()
port = 12345

# 绑定端口号
server_socket.bind((host, port))

# 连接客户端
client_address = ('localhost', 54321)
server_socket.connect(client_address)

print("等待接收消息...")

while True:
    # 接收数据
    data, address = server_socket.recvfrom(1024)
    print("收到消息:", data.decode('utf-8'))

    # 发送数据
    message = '消息已收到!'
    server_socket.send(message.encode('utf-8'))

# 关闭socket
server_socket.close()

2.客户端代码

import socket

# 创建UDP socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# 获取本地主机名
host = socket.gethostname()
port = 54321

# 绑定端口号
client_socket.bind((host, port))

# 连接服务器
server_address = ('localhost', 12345)
client_socket.connect(server_address)

while True:
    # 用户输入信息
    message = input('请输入消息: ')
    if message == 'exit':
        break

    # 发送数据
    client_socket.send(message.encode('utf-8'))

    # 接收反馈信息
    data, server = client_socket.recvfrom(1024)
    print('服务器回复:', data.decode('utf-8'))

# 关闭socket
client_socket.close()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值