Python网络编程学习笔记一:socket模块

来源:互联网 发布:淘宝助理上传宝贝显示0 编辑:程序博客网 时间:2024/06/01 10:00
#! -*- coding:utf-8 -*-'''主要测试python网络编程中socket模块的使用涉及到的技术点: 套接字:面向连接的还有非面向连接套接字:tcp面向连接、udp非面向连接1、导入socket2、创建socket :socket三要素 1、socket_family, 2、socket_type 3、protool 默认03、服务端    socket绑定网络    socket监听    while :        等待客户端连接 accept        while            接收客户端信息        关系客户端连接    socket关闭4、客户端    连接服务器    while        对话,发送和接收    关闭客户端套接字'''from socket import *from time import ctimeclass socket_ser(object):    def __init__(self):        self.host = ''        self.port =  21567        self.buffer = 1024        self.addr = (self.host,self.port)    def create(self):        ser = socket(AF_INET,SOCK_STREAM)        ser.bind(self.addr)        ser.listen(5)        while True:            print 'waiting the client connect ...'            tcpclisocket ,cliaddr = ser.accept()            print 'connect the server from : ',cliaddr            while True:                data = tcpclisocket.recv(self.buffer)                if not data:                    break                print data                info = raw_input('>:\n')                if not info:                    break                tcpclisocket.send(info)            tcpclisocket.close()            print 'from ',cliaddr,' connection is closed!'        ser.close()if __name__ == '__main__':    ser = socket_ser()    ser.create()客户端:class socket_client(object):    def __init__(self):        self.host = 'localhost'        self.port =  21567        self.buffer = 1024        self.addr = (self.host,self.port)    def create(self):        cli = socket(AF_INET,SOCK_STREAM)        cli.connect(self.addr)        while True:            info = raw_input('>:\n')            if not info:                break            cli.send(info)            data = cli.recv(self.buffer)            if not data:                break            print data        cli.close()        print 'the client socket is closed!'
1 0
原创粉丝点击