基于python的tcp socket通信by Netfairy - 2015-08-10
0x00 前言
Python的设计哲学是“优雅”、“明确”、“简单”,的确,用python写程序真的是一种享受。想当时我用c语言写了一个tcp socket通信程序http://www.netfairy.net/?post=5真的要崩溃了,今天我用python来实现同样的功能,对比了一下,python写代码非常少,即使没学过python也能很轻松看懂。
0x01 开始python之旅
服务端
要用socket通信,我们首先要导入socket这个模块
import socket
然后设置连接的一些信息,我们是我们是基于TCP的通信,所以
sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
然后将sock与服务端的IP和端口绑定
sock.bind(("127.0.0.1",8888))
到这里一切准备就绪,开始监听
sock.listen(8)
8表示最大连接数量。服务端的代码就完成了,总共5行,如果用C语言写的话大概20行左右。。。
客户端
客户端更加简单了,首先导入socket模块
import socket
然后设置sock的一些信息
sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
现在就可以连接服务器了
sock.connect(("127.0.0.1",8888))
总共三行代码,连接成功后,双方就可通信了。
开始通信
开始通信前,服务器首先接受客户端的连接
csock,caddr=sock.accept()
csock以后就用来和客户端通信,caddr是它的地址信息。比如服务器给客户端发信息:
csock.send("hello client!!!")
客户端接受发来的信息
sock.recv(1024)
这样就完成了一次通信。。。
0x02 后记
可以看到,用python写socket通信程序是非常简便的,不单如此,其他的如文件操作也是,python就是为便捷而生,enjoy it !!!