socket网络编程

服务器端:

我们使用 socket 模块的 socket 函数来创建一个 socket 对象。socket 对象可以通过调用其他函数来设置一个 socket 服务。

现在我们可以通过调用 bind(hostname, port) 函数来指定服务的 port(端口)

接着,我们调用 socket 对象的 accept 方法。该方法等待客户端的连接,并返回 connection 对象,表示已连接到客户端。

完整代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/python
# coding=utf-8
 
import sys
import socket
 
BUF_SIZE = 1024
server_addr = ('127.0.0.1',8888)
try:
    server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
except socket.error,msg:
    print "Creating Socket Failure. Error Code:" + str(msg[0]) + "Message:" + msg[1]
    sys.exit()
print "Socket Created!"
server.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) #设置地址复用
try:
    server.bind(server_addr)
except socket.error,msg:
    print "Binding Failure. Error Code:" + str(msg[0]) + " Message:" + msg[1]
    sys.exit()
print "Socket Bind!"
server.listen(5)
print "Socket listening "
while True:
    client,client_addr = server.accept()
    print "Connected by", client_addr
    while True:
        sendMsg = client.recv(BUF_SIZE)
            client.sendall(sendMsg)
server.close()

  

客户端:

接下来我们写一个简单的客户端实例连接到以上创建的服务。端口号为 12345。

socket.connect(hosname, port ) 方法打开一个 TCP 连接到主机为 hostname 端口为 port 的服务商。连接后我们就可以从服务端后期数据,记住,操作完成后需要关闭连接。

完整代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import sys
import socket
 
BUF_SIZE = 1024
server_addr = ('127.0.0.1',8888)
try:
    client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
except socket.error,msg:
    print "Creating socket Failure. Error Code :"+str(msg[0]) + "Message:" + msg[1]
    sys.exit()
try:
    client.connect(server_addr)
except socket.error,msg:
    print "Connect server Failure. Error Code:" + str(msg[0])
    sys.exit()
while True:
    data = raw_input("Please input send your message >")
    if not data:
        print "input can't empty,Please input again.."
        continue
    client.sendall(data)
    data = client.recv(BUF_SIZE)
    print data
client.close()

Python Internet 模块

以下列出了 Python 网络编程的一些重要模块:

 

详解请看以下地址:

http://www.runoob.com/python/python-socket.html

 

  

 

posted @   轻轻的吻  阅读(239)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示