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

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

2017-05-03 11:38 435 查看
#! -*- coding:utf-8 -*-
'''
主要测试python网络编程中socket模块的使用
涉及到的技术点: 套接字:面向连接的还有非面向连接套接字:tcp面向连接、udp非面向连接
1、导入socket
2、创建socket :socket三要素 1、socket_family, 2、socket_type 3、protool 默认0
3、服务端
socket绑定网络
socket监听
while :
等待客户端连接 accept
while
接收客户端信息
关系客户端连接
socket关闭
4、客户端
连接服务器
while
对话,发送和接收
关闭客户端套接字
'''
from socket import *
from time import ctime

class 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!'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息