2023/12/23软件工程日报

Socket编程是一种用于网络通信的编程技术,它允许不同计算机之间的进程进行通信。在Socket编程中,通信的两端分别是客户端和服务器端。Socket是一种抽象层,提供了一个接口,使得程序员可以通过网络发送和接收数据。

1.导入模块: 首先,需要导入相关的模块,通常是socket模块。

import socket

2.创建Socket: 使用socket模块创建一个Socket对象。可以选择使用TCP或UDP协议。

# 创建TCP Socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

这里AF_INET表示使用IPv4地址,SOCK_STREAM表示使用TCP协议。如果想使用UDP,可以选择SOCK_DGRAM

3.绑定地址和端口: 对于服务器,需要绑定一个特定的地址和端口,使得客户端可以连接。

server_address = ('127.0.0.1', 12345)
server_socket.bind(server_address)

这里使用了本地地址127.0.0.1和端口12345,可以根据实际需求修改。

4.监听连接(仅服务器): 对于服务器,需要开始监听传入的连接请求。

server_socket.listen(5)  # 允许同时处理5个连接请求

5.接受连接(仅服务器): 服务器接受客户端的连接请求。

client_socket, client_address = server_socket.accept()

6.发送和接收数据: 使用send()recv()方法发送和接收数据。

# 发送数据
client_socket.send(b'Hello, server!')

# 接收数据
data = client_socket.recv(1024)

这里b'Hello, server!'是一个字节序列,1024表示接收数据的最大字节数。

7.关闭连接: 当通信结束时,需要关闭连接。

client_socket.close()  # 关闭客户端连接
server_socket.close()  # 关闭服务器Socket

 

posted @   努力学习2333  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示