使用 python 完成 Socket 通信(1)一个对话的简单案例

本文详细介绍了使用Python编写的服务器端和客户端Socket通信实例,展示了如何在本地建立TCP连接进行数据传输和断开连接的过程。
摘要由CSDN通过智能技术生成

文章参考:python 完成 Socket 通信的简单实例

服务端server

import socket
# 创建服务器端套接字
sk = socket.socket()

# 设置给定套接字选项的值。
# sk.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

# 把地址绑定到套接字
sk.bind(('127.0.0.1', 8898))

# 监听链接
sk.listen()

# 接受客户端链接
conn, addr = sk.accept()

while True:
    # 接收客户端信息
    ret = conn.recv(1024)
    # 打印客户端信息
    print(ret.decode('utf-8'))
    # 结束处理
    if ret == b'bye':
        conn.send(b'bye')
        break
    info = input('>>>')
    conn.send(bytes(info, encoding='utf-8'))
# 关闭客户端链接
conn.close()
# 关闭服务器套接字
sk.close()

客户端client

import socket
# 创建客户端套接字
sk = socket.socket()
# 尝试连接服务器
sk.connect(('127.0.0.1',8898))
while True:
    # 信息发送
    info = input('>>>')
    sk.send(bytes(info,encoding='utf-8'))
    # 信息接收
    ret = sk.recv(1024)
    # 结束会话
    if ret == b'bye':
        sk.send(b'bye')
        break
    # 信息打印
    print(ret.decode('utf-8'))
# 关闭客户端套接字
sk.close()

经测试以上代码可实现客户端与服务端的对话。

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 好的,下面是一个使用Python完成简单socket程序示例。这是一个服务器端程序,它接收客户端发送的信息并将其返回给客户端: ``` import socket # 创建套接字 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 获取本地主机名 host = socket.gethostname() port = 12345 # 绑定端口号 server_socket.bind((host, port)) # 设置最大连接数,超过后排队 server_socket.listen(5) print("服务器启动,等待客户端连接...") while True: # 建立客户端连接 client_socket, addr = server_socket.accept() print("连接地址:%s" % str(addr)) msg = "欢迎使用本服务器!\r\n" client_socket.send(msg.encode('utf-8')) client_socket.close() ``` 客户端代码: ``` import socket # 创建套接字 client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) host = socket.gethostname() port = 12345 # 连接服务器 client_socket.connect((host, port)) # 接收小于1024字节的数据 msg = client_socket.recv(1024) client_socket.close() print(msg.decode('utf-8')) ``` 这仅仅是一个简单的示例,您可以根据需要更改代码以实现更复杂的功能。 ### 回答2: 以下是一个使用Python完成简单Socket程序的示例: ```python import socket # 服务器端 def server(): # 创建socket对象 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 绑定本地IP和端口 server_address = ('localhost', 8888) server_socket.bind(server_address) # 监听客户端连接 server_socket.listen(1) print('等待客户端连接...') # 接受客户端连接 client_socket, client_address = server_socket.accept() print('客户端已连接:', client_address) # 接收客户端发送的数据 data = client_socket.recv(1024) print('收到客户端消息:', data.decode('utf-8')) # 发送响应给客户端 response = 'Hello, Client!' client_socket.send(response.encode('utf-8')) # 关闭连接 client_socket.close() server_socket.close() # 客户端 def client(): # 创建socket对象 client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 连接服务器 server_address = ('localhost', 8888) client_socket.connect(server_address) # 发送数据给服务器 message = 'Hello, Server!' client_socket.send(message.encode('utf-8')) # 接收服务器响应 data = client_socket.recv(1024) print('收到服务器消息:', data.decode('utf-8')) # 关闭连接 client_socket.close() if __name__ == '__main__': server() # 启动服务器 # client() # 启动客户端 ``` 这是一个简单Socket程序,包括服务器端和客户端。服务器端监听指定端口,等待客户端连接,接收客户端发送的消息并返回响应。客户端连接服务器,发送消息给服务器,并接收服务器的响应。 在程序中,服务器端使用`socket`库的`socket`方法创建一个socket对象,然后使用`bind`方法绑定本地IP和端口,使用`listen`方法监听客户端连接。接受客户端连接后,使用`accept`方法返回一个连接对象和客户端的地址。通过连接对象,可以使用`recv`方法接收客户端发送的消息,并使用`send`方法发送响应给客户端。最后,关闭连接。 客户端使用`socket`库的`socket`方法创建一个socket对象,然后使用`connect`方法连接服务器。连接成功后,使用`send`方法发送消息给服务器,并使用`recv`方法接收服务器的响应。最后,关闭连接。 还要注意,在程序中服务器端和客户端的启动分别放在`if __name__ == '__main__':`的`server()`和`client()`中,您可以根据需要注释掉其中一个来选择启用服务器端还是客户端。 ### 回答3: 以下是一个使用 Python 完成的基本 Socket 程序: ```python import socket def main(): # 创建 socket 对象 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 绑定 IP 地址和端口号 server_ip = '127.0.0.1' server_port = 8888 server_socket.bind((server_ip, server_port)) # 开始监听连接 server_socket.listen(1) print('Server started and listening for connections...') while True: # 等待客户端连接 client_socket, client_address = server_socket.accept() print('Connected with', client_address) while True: # 接收客户端发送的数据 data = client_socket.recv(1024).decode() if not data: break print('Received data:', data) # 发送响应给客户端 response = 'Server received: ' + data client_socket.send(response.encode()) # 关闭与客户端的连接 client_socket.close() print('Connection closed with', client_address) if __name__ == '__main__': main() ``` 这个程序是一个简单的 TCP 服务器,它监听本地IP地址 127.0.0.1 的 8888 端口,并接受客户端的连接。一旦连接建立,它会接收客户端发送的数据,然后将收到的数据原样返回给客户端。程序会持续监听并处理多个客户端的连接。 请注意,此示例仅适用于展示目的,实际应用中需要添加错误处理和其他必要的功能,例如对数据的验证和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

饿了就干饭

你的鼓励将是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值