socket网络编程
2015-11-27 20:41
483 查看
socket是什么
socket
• 什么是socket 所谓socket通常也称作”套接字”,用于描述IP地址和端口,
是一个通信链的句柄。应用程序通常通过”套接字”向网络发出请求或
者应答网络请求。说白了就是一种通信机制。它类似于银行,电信啊
这些部分的电话客服部门。你打电话的时候,那边会分配置一个人回 答你的问题,客服部门就相当于socket的服务器端了,你这边呢就相
当于客户端了,在和你通话结束前,如果有人在想找和你通话的那个
说话,是不可能的,因为你在和他通信,当然客服部门的电话交换机
也不会重复分配。
socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”, 都可以用“打开open –> 读写write/read –> 关闭close”模式来操作。 Socket就是该模式的一个实现,socket即是一种特殊的文件,一些 socket函数就是对其进行的操作(读/写IO、打开、关闭)
分为客户端和服务端
服务端代码如下
客户端的代码如下
上面这么写只能实现一个客户端访问服务器,要向多个客户端访问服务器那么就得导入 SocketServer模块
代码如下(只改动server,client不变)
socket
• 什么是socket 所谓socket通常也称作”套接字”,用于描述IP地址和端口,
是一个通信链的句柄。应用程序通常通过”套接字”向网络发出请求或
者应答网络请求。说白了就是一种通信机制。它类似于银行,电信啊
这些部分的电话客服部门。你打电话的时候,那边会分配置一个人回 答你的问题,客服部门就相当于socket的服务器端了,你这边呢就相
当于客户端了,在和你通话结束前,如果有人在想找和你通话的那个
说话,是不可能的,因为你在和他通信,当然客服部门的电话交换机
也不会重复分配。
socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”, 都可以用“打开open –> 读写write/read –> 关闭close”模式来操作。 Socket就是该模式的一个实现,socket即是一种特殊的文件,一些 socket函数就是对其进行的操作(读/写IO、打开、关闭)
分为客户端和服务端
服务端代码如下
#_*_ coding:utf-8 _*_ import socket sk = socket.socket() ip_port =('127.0.0.1',65500) sk.bind(ip_port) sk.listen(5) while True: #sk.socket返回是个元组,一共有两个值 coon表示假如lazup连接到serve,那么conn就是lazup #address表示lazup的地址 conn,address = sk.accept() conn.send('hello') flag =True while flag: data=conn.recv(1024) print data if data=='exit': flag='False' break conn.send('sb') conn.close()
客户端的代码如下
#_*_ coding:utf-8 _*_ import socket client =socket.socket() ip_port =('127.0.0.1',65500) client.connect(ip_port) while True: data =client.recv(1024) print data inp =raw_input('client :') client.send(inp) if inp =='exit': break
上面这么写只能实现一个客户端访问服务器,要向多个客户端访问服务器那么就得导入 SocketServer模块
代码如下(只改动server,client不变)
import SocketServer class MyServer(SocketServer.BaseRequestHandler): def setup(self): pass def handle(self): conn=self.request conn.send('hello') flag =True while flag: data=conn.recv(1024) print data if data=='exit': flag='False' break conn.send('sb') conn.close() def finish(self): pass if __name__ == '__main__': server = SocketServer.ThreadingTCPServer(('127.0.0.1',65500),MyServer) server.serve_forever()
相关文章推荐
- 关于电脑DNS出错,如何修复和手动设置DNS
- 网络通信加密处理
- 网络部分整理第三部分(XML解析)
- Android使用okhttp下载图片
- iOS 开发笔记-AFNetWorking https SSL认证
- 机器学习--神经网络
- TCP
- 黑马程序员—Java基础—网络编程
- 用AsyncHttpClient访问xml页面
- Android网络编程框架推荐-Volley
- 第一行代码总结:10网络:10.4解析JSON格式数据10.4.2使用GSON
- 第一行代码总结:10网络:10.4解析JSON格式数据10.4.1使用JSONObject
- 第一行代码总结:10网络:10.3.2 SAX解析方式
- 第一行代码总结:10网络:10.3解析XML格式数据:
- 第一行代码总结:10网络:10.2.2使用HttpClient
- UDT:基于UDP的可靠传输协议
- 第一行代码总结:10网络:10.2使用HTTP协议访问网络10.2.1 使用HttpURLConnection10.2使用HTTP协议访问网络 工作原理: 客户端向服务器发出一条HTTP请求,服务器收
- 第一行代码总结:10网络:10.1WebView的用法
- http请求
- HttpClient和HtmlParser配合实现自动CAS单点登录系统抽取页面信息