最近巩固下python语言,说真的,使用了这么多脚本语言,仍是这门比较好玩点,快速,简洁,容易上手更不用说了。html
socket 套接字是为特定网络协议(例如TCP/IP,ICMP/IP,UDP/IP等)套件对上的网络应用程序提供者提供当前可移植标准的对象。socket是容许发送和接受数据。创建通讯通道,网络通讯的每一个端点拥有一个套接字对象为前提。python
python socket 这就是python的一个模块,至于怎么使用这个模块,你们能够查看 如下的网址,里面的python资料都很全的。http://docs.python.org/2/library/socket.html(英文的,不过你们能够大概看下,而后看实例就懂得了,很容易) 服务器
如下写的代码仍是不够完美,哪位高手路过的,请多指点,上代码...............网络
1 服务器端app
[root@localhost ~]# cat server.py #coding:utf8 import time import sys import socket import select server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.bind(('127.0.0.1',8989))#绑定IP和端口 server.listen(10) #侦听 input = [server,sys.stdin]#sys.stdin是标准输入,从键盘输入 print '请等待链接,亲!耐心点......' client,address = server.accept()#获取到客户和IP地址 print "链接的是:",address input.append(client)#添加客户端到imput列表 Ture = 1#定义一个死循环 while Ture: print"请输入聊天的话题,亲>>>>>:" input_data,out_data,except_data = select.select(input,[],[])#利用select对全部输入的数据进行监视 for receive_data in input_data:#这里就是循环输入,但这里要有两种方式 if receive_data == sys.stdin: #这个是处理标准输入,也就是服务器的使用键盘输入 data = raw_input() if data == '^c': running = 0 client.send(data) #发送到客户端 client.close() break client.send("发送时间: %s:\n%s"%(time.ctime(),data)) else:#这个就是接收socket的输入 data = receive_data.recv(1024) print "<客户端发送的信息>",data server.close()
2 客户端socket
[root@localhost ~]# cat clien.py #coding:utf8 import time import sys import select import socket address = ('127.0.0.1',8989) client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client.connect(address) input = [client,sys.stdin] Ture = 1 while Ture: print '请输入聊天的话题,亲>>>>>:' input_data,oupt_data,except_data = select.select(input,[],[]) for receive_data in input_data: if receive_data == client: data = client.recv(1024) if data == '^c': running = 0 print 'server exist' receive_data.close() print 'client is over' break print "<服务器发送的信息>",data else: client_data = raw_input() client.send("发送时间: %s:\n%s"%(time.ctime(),client_data)) client.close()
3 测试!!!ide
服务器端执行:测试
[root@localhost ~]# python server.py 请等待链接,亲!耐心点......
客户端执行:优化
[root@localhost ~]# python clien.py 请输入聊天的话题,亲>>>>>:
4 服务器端和客户端聊天对话测试:server
客户端发起对话链接: [root@localhost ~]# python clien.py 请输入聊天的话题,亲>>>>>: 测试socket功能是否正常使用,请回答? 请输入聊天的话题,亲>>>>>: 服务器端口接收信息: [root@localhost ~]# python server.py 请等待链接,亲!耐心点...... 链接的是: ('127.0.0.1', 33371) 请输入聊天的话题,亲>>>>>: <客户端发送的信息> 发送时间: Wed Jul 24 09:13:48 2013: 测试socket功能是否正常使用,请回答? 请输入聊天的话题,亲>>>>>:
服务器端发送信息: [root@localhost ~]# python server.py 请等待链接,亲!耐心点...... 链接的是: ('127.0.0.1', 33371) 请输入聊天的话题,亲>>>>>: <客户端发送的信息> 发送时间: Wed Jul 24 09:13:48 2013: 测试socket功能是否正常使用,请回答? 请输入聊天的话题,亲>>>>>: 测试是成功的,不过代码仍是得优化,功能还须要添加,收到没? 请输入聊天的话题,亲>>>>>: 客户端接收信息: [root@localhost ~]# python clien.py 请输入聊天的话题,亲>>>>>: 测试socket功能是否正常使用,请回答? 请输入聊天的话题,亲>>>>>: <服务器发送的信息> 发送时间: Wed Jul 24 09:21:15 2013: 测试是成功的,不过代码仍是得优化,功能还须要添加,收到没? 请输入聊天的话题,亲>>>>>:
因为本人水平有限,代码写的不是很完美,下次有时间写一个像QQ界面的通信软件.