Python-老男孩-03_socket

时间:2021-07-14 17:07:20

Socket简介:

所谓Socket也称"套接字",用于描述IP和端口,是一个通信链的句柄,应用程序通过"套接字"向网络发出请求或应答网络请求。
Socket起源于Unix,而Unix/Linux的哲学之一就是"一切皆文件"。都可以用"打开open"-->读写write/read-->关闭close模式来操作。Socket就是该模式的一个实现,即Socket就是一个特殊的文件

第一个简单的Socket server端和client端

Python-老男孩-03_socket

--------------------------------------------------------------------------

Python-老男孩-03_socket

 #skServer = socket.socket()
 skServer = socket.socket(socket.AF_INET,socket.SOCK_STREAM,0)

#参数1  地址簇
#socket.AF_INET IPV4(默认)      socket.AF_INET6

#参数2 类型
#socket.SOCK_STREAM  TCP(默认)
#socket.SOCK_DGRAM  UDP

#参数3  默认 0

 Server端改造,支持多个用户连接

#!/usr/bin/env python
#_*_ coding:utf-8 _*_

# socket服务端升级版本   Python提供的该模块对原生的Socket作了封装 

import SocketServer

class MyServer(SocketServer.BaseRequestHandler):

    def setup(self):
        pass

    def handle(self):

        print(self.request)
        print(self.client_address)
        print(self.server)

        conn = self.request
        conn.send('server:hello.awei')
        flag =True
        while flag:
            recvData = conn.recv(1024)
            print(recvData)
            conn.send('sb')
            if 'q' == recvData:
                flag = False
                conn.close()

    def finish(self):
        pass

# 不要作变动 只需要在 MyServer类中写具体的应用场景
if __name__ == '__main__':

    server = SocketServer.ThreadingTCPServer(('127.0.0.1',8080),MyServer)
    server.serve_forever()