socket网络编程

服务器端:

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

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

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

完整代码如下:

#!/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 的服务商。连接后我们就可以从服务端后期数据,记住,操作完成后需要关闭连接。

完整代码如下:

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

 

  

原文地址:https://www.cnblogs.com/yuanqiangfei/p/8118779.html