firefly笔记之python socket

来源:互联网 发布:pdf编辑软件电脑版 编辑:程序博客网 时间:2024/05/16 23:38

在了解firefly的客户端和服务器通信之前,个人觉得应该了解python的socket的编程,于是稍微了解了一下,大家都知道python是由C实现,所以大家很多会发现python 的socket编程,与C编程很雷同。

client.py:

#coding:utf-8################################################################## client.py# Author     : # Version    : 1.0.0.0# Date       : 2014-07-13# Description: ##################################################################测试客户端与服务器连接import socket;import sys;#客户端socket编程流程:'''1. 创建 Socket2. 连接到远程服务器:connect3. 读写数据:recv/sendall'''if __name__ == "__main__":host = "127.0.0.1";port = 8877;addr = (host,port);##地址try:client = socket.socket(socket.AF_INET,socket.SOCK_STREAM);##TCP连接except socket.error,msg:print "socket create failed ! Error code:%d ! Error Msg:%s"%(msg[0],msg[1]);sys.exit();##连接try:client.connect(addr);except socket.error,msg:print "socket connect failed ! Error code:%d ! Error Msg:%s"%(msg[0],msg[1]);sys.exit();else:print "client connect server:" + host + " port:" + str(port) + "success";message = "test python";client.sendall(message);##发送mesrecv = client.recv(1024);##接受print mesrecv;##关闭socketclient.close();
server.py:
<pre name="code" class="python">#coding:utf-8################################################################## server.py# Author     : # Version    : 1.0.0.0# Date       : 2014-07-13# Description: ##################################################################测试服务器连接import socket;import sys;#服务器socket编程流程'''1. 创建 socket2. 绑定到一个地址和端口:bind3. 侦听进来的连接:listen4. 接受连接:accept5. 读写数据:recv/sendall'''if __name__ == "__main__":try:server = socket.socket(socket.AF_INET,socket.SOCK_STREAM);except socket.error,msg:print "socket create failed ! Error code:%d ! Error Msg:%s"%(msg[0],msg[1]);sys.exit();host = "127.0.0.1";port = 8877;addr = (host,port);#bindtry:server.bind(addr);except socket.error,msg:print "bind create failed ! Error code:%d ! Error Msg:%s"%(msg[0],msg[1]);sys.exit();#listenserver.listen(10);print "server is listen....";while True:#acceptclient,caddr = server.accept();#recv/sendallrecvdata = client.recv(1024);senddata = "I am recv data:"+recvdata;client.sendall(senddata);#closeclient.close();server.close();



0 0