一、简介
socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求。socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,对于文件用【打开】【读写】【关闭】模式来操作。socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭)
socket和file的区别:
- file模块是针对某个指定文件进行【打开】【读写】【关闭】
- socket模块是针对 服务器端 和 客户端Socket 进行【打开】【读写】【关闭】
二、socket编程
1.编程思路
1.1。TCP服务端
- 创建套接字,绑定套接字到本地IP与端口
- 开始监听连接
- 进入循环,不断接受客户端的连接请求
- 然后接收传来的数据,并发送给对方数据
- 传输完毕后,关闭套接字
1.2.TCP客户端
- 创建套接字,连接远端地址
- 连接后发送数据和接收数据
- 传输完毕后,关闭套接字
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 import socket 5 6 ip_port = ('127.0.0.1',9999) 7 8 sk = socket.socket() 9 sk.bind(ip_port) 10 sk.listen(5) 11 12 while True: 13 print 'server waiting...' 14 conn,addr = sk.accept() 15 16 client_data = conn.recv(1024) 17 print client_data 18 conn.sendall('不要回答,不要回答,不要回答') 19 20 conn.close() 21 22 socket server 23 24 socket_server