python socket模块
基于网络的套接字:AF_INET有两种协议,面向连接的协议TCP: SOCK_STREM,
无连接的协议UDP:SOCK_DGRAM
服务端:
socket.socket():创建套接字socket.AF_INET,socket.SOCT_STREAM
socket.bind():绑定地址(IP地址和端口号)到套接字
socket.listen():开始TCP监听
socket.accept():被动接受客户端连接,(阻塞式)等待连接的到来
一个简单服务端
#coding:utf-8 import socket, time #创建基于网络套接字的TCP连接 s=socket.socket(socket.AF_INET,socket.SOCK_STREAM ) s.bind(('0.0.0.0', 1234)) s.listen() while True: print 'start......' sockobj, addr=s.accept() print 'client IP:' , addr while True: data=sockobj.recv(1024) if not data: break sockobj.send(str(time.time())) sockobj.close() s.close()
客户端
socket.connect():主动初始化服务器的连接
socket.connect_ex():connect的扩展版本,出错时返回错误码,而不是抛出异常
#coding:utf-8 import socket host=('192.168.1.102', 1234) c=socket.socket(socket.AF_INET, socket.SOCK_STREAM) c.connect(host) while True: mesg=raw_input("send>:") c.send(mesg) data=c.recv(1024) print data c.cloce()