您的位置:首页 > 理论基础 > 计算机网络

python下的socket网络编程

2016-07-26 11:07 393 查看

一、server

# coding=utf-8

from socket import *

#hostIP

myhost = ''

#端口

myport = 10000

sockobj = socket(AF_INET, SOCK_STREAM)

sockobj.bind((myhost, myport))

sockobj.listen(128)

while True:

    connection, address = sockobj.accept()

    print "col:", address

    while True:

        data = connection.recv(1024)

        print data

        if not data:

            break

        connection.send("echo" + data)

    connection.close()

二,server 运用python原始封装socketserver

# coding=utf-8

from SocketServer import BaseRequestHandler,TCPServer

import traceback

class myrequest(BaseRequestHandler):

    def handle(self):

        while True:

            try:

                data=self.request.recv(1024).strip()

                print data

                print "receive from (%r):%r"%(self.client_address,data)

                self.request.sendall(data)

            except Exception, e:

                traceback.print_exc()

                break

#判断是否是引用     

if __name__=="__main__":

    host=""

    port=10007

    add=(host,port)

    server=TCPServer(add,myrequest)

    server.serve_forever()

三、多线程TCPserver

# coding=utf-8
from SocketServer import ThreadingTCPServer, StreamRequestHandler
import traceback

class myStreamRequestHandler(StreamRequestHandler):
   
    #重写的方法
    def handle(self):
        
        while True:
            try:

                #去除左右空格的接收数据
                data = self.request.recv(1024).strip()
                print "receive from (%r):%r" % (self.client_address, data)
                #发送给客户端
                self.request.sendall(data)
            except Exception, e:
                traceback.print_exc()
                break

#判断是否是引用
if __name__ == "__main__":
#主机地址,默认为本机地址
    host = ""
    port = 8888
 
    
 #构建主机,端口元组
    addr = (host, port)
    server = ThreadingTCPServer(addr, myStreamRequestHandler)
    server.serve_forever()

四、客户端(client)

#coding=utf-8
import socket
#服务端地址
host="localhost"
#端口
port=11112
#构建地址元组
addr=(host,port)
#网络类型 TCP ,socket类型
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(addr)
while True:
    s.sendall("hello world")
    data=s.recv(1024)
    print data
    if not data:
        break
s.close()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python socket 网络编程