基于Python的socket编程[原]

服务端:
               
               
                #socket server端
#获取socket构造及常量
from socket import *                    
#''代表服务器为localhost
myHost = ''      
#在一个非保留端口号上进行监听
myPort = 50007         
#设置一个TCP socket对象
sockobj = socket(AF_INET, SOCK_STREAM)  
#绑定它至端口号
sockobj.bind((myHost, myPort))        
#监听,允许5个连结
sockobj.listen(5)
#直到进程结束时才结束循环
while True:      
    #等待下一个客户端连结
    connection, address = sockobj.accept( )
    #连结是一个新的socket
    print 'Server connected by', address
    while True:
        #读取客户端套接字的下一行
        data = connection.recv(1024)
        #如果没有数量的话,那么跳出循环
        if not data: break   
        #发送一个回复至客户端
        connection.send('Echo=>' + data)
    #当socket关闭时eof   
    connection.close( )
客户端:
import sys
from socket import *            
serverHost = 'localhost'        
serverPort = 50007              
#发送至服务端的默认文本
message = ['Hello network world']
#如果参数大于1的话,连结的服务端为第一个参数
if len(sys.argv) > 1:
    serverHost = sys.argv[1]
    #如果参数大于2的话,连结的文字为第二个参数
    if len(sys.argv) > 2:            
        message = sys.argv[2:]  
#建立一个tcp/ip套接字对象
sockobj = socket(AF_INET, SOCK_STREAM)
#连结至服务器及端口
sockobj.connect((serverHost, serverPort))
for line in message:
    #经过套按字发送line至服务端
    sockobj.send(line)  
    #从服务端接收到的数据,上限为1k
    data = sockobj.recv(1024)
    #确认他是引用的,是'x'
    print 'Client received:', repr(data)
#关闭套接字
sockobj.close( )