一般的网络通信:
Python中利用socket模块实现网络主机间通讯:
socket.socket(family,type)
family:套接字类型
AF_INET
AF_UNIX
type:
STREAM:tcp 流式
SOCK_DGRAM:udp 用户数据报
基于TCP服务端编程:
第一步:建立套接字对象:
tcpconn=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
第二步:绑定地址
使用套接字对象的bind方法绑定与某地址和端口
tcpconn.bind((‘ip’,port))
tcpconn.bind(('192.168.2.168',8089))
第三步:使用listen方法进行监听
tcpconn.listen(backlog)
tcpconn.listen(100)
第四步:循环监听状态
使用套接字对象的accept方法接收用户请求
ci,cp = tcpconn.accept()
返回套接字对象和元组
编写客户端程序:
第一步,创建socket对象以连接服务器端
clientsock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
第二步:
clientsock.connect((‘server_ip’,port))
clientsock.connect((‘192.168.2.168’,8089))
第三步:发送请求
clientsock.send()
一个简单的服务端和客户端编程的实现:
服务端:mysocket.py
#!/usr/local/bin/python import socket tcpconn = socket.socket(socket.AF_INET,socket.SOCK_STREAM) server_addr = ('192.168.2.168',8089) tcpconn.bind(server_addr) tcpconn.listen(20) while True: cinfo,caddr = tcpconn.accept() print "Got a connect from %s" % caddr[0] data = cinfo.recv(1024) print "Receive data:%s" % data cinfo.send("My is server,your data is "+ data) cinfo.close()
客户端:csocket.py
#!/usr/local/bin/python import socket tcpconn = socket.socket(socket.AF_INET,socket.SOCK_STREAM) server_addr = ('192.168.2.168',8089) tcpconn.bind(server_addr) tcpconn.listen(20) while True: cinfo,caddr = tcpconn.accept() print "Got a connect from %s" % caddr[0] data = cinfo.recv(1024) print "Receive data:%s" % data cinfo.send("My is server,your data is "+ data) cinfo.close()