socket(套接字),传输层通信的端点,由IP和端口号组成(IP,Port),可以通过socket精确地找到服务器上的进程并与之通信

python2.6实现,基于AF_INET(网络套接字)
类型SOCKET_STREAM(TCP套接字),SOCKET_DGRAM(UDP套接字)

TCP socket通信逻辑
TCP服务端:创建socket>>>绑定本地服务器>>>监听连接>>>通信交互>>>关闭连接
TCP客户端:创建socket>>>与服务器建立连接>>>通信交互>>>关闭连接

Python Tcp Socket服务端

     #!/usr/bin/python
#-*-coding:utf-8-*- # filename : Tdpsocket.py
# author :
# create date : 2015-03-25
# modify date :
# description : tcp socket #import stander lib
from socket import socket, AF_INET, SOCK_STREAM
import sys
sys.path.append( '..' ) class Tcpsocket():
'''
Tcpsocket类,建立tcp socket服务端,获得建立连接的配置信息
用法:
p = Tcpsocket.Tcpsocket()
p.listen()
无限循环监听端口,process重写数据处理方式
''' def __init__( self ):
'''
初始化,建立socket,ip端口绑定
'''
self.tcpServerSocket = socket( AF_INET, SOCK_STREAM ) #创建TCP socket
#端口号为0-65535,0-1023为系统保留,动态端口49152-65535,服务使用端口为1024-49151区间
self.tcpServerSocket.bind( ('127.0.0.1', 20015) )
self.tcpServerSocket.listen(5)
self.buffer_size = 1024 #缓冲区为1k def bulidConnect( self ):
'''
建立连接,获取连接客户端的信息,接收数据
'''
tcpClientSocket, addr = self.tcpServerSocket.accept()
print 'conn from : ', addr
raw_data = tcpClientSocket.recv( int(self.buffer_size) )
print 'receive data : ', raw_data return ( tcpClientSocket, raw_data ) def process( self, data ):
'''
socket传输的数据加工处理,继承重写该函数
'''
result = data
return result def send( self, tcp, result ):
'''
返回信息,关闭连接
'''
tcpClientSocket = tcp
tcpClientSocket.send( result )
tcpClientSocket.close() def listen( self ):
'''
监听端口,无限循环
'''
while True:
print 'wati for connect:'
socket_data = self.bulidConnect() #建立连接
result = self.process( socket_data[1] ) #接收信息,处理信息
self.send( socket_data[0], result ) #向客户端返回信息
self.close() def close( self ):
'''
关闭连接
'''
self.tcpServerSocket.close() def __del__( self ):
self.close() if __name__ == '__main__':
p = Tcpsocket()
p.listen()

Python Tcp Socket客户端

     import socket

     sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = ( '127.0.0.1', 20015 ) print 'Connecting to %s:%s.' % server_address
sock.connect(server_address) message = "I'm TCP client"
print 'Sending "%s".' % message sock.send( '[{"url":"www.baidu.com"}]' )
print 'receive from server : ', sock.recv(1024) sock.close()
print 'Closing socket.'

Python Tcp Socket的更多相关文章

  1. python tcp socket 多线程

    不多说,直接上代码 client.py #!/usr/bin/python import socket,sys,string host="localhost" port=8000 ...

  2. python TCP socket套接字编程以及注意事项

    TCPServer.py #coding:utf-8 import socket #s 等待链接 #c 实时通讯 s = socket.socket(socket.AF_INET,socket.SOC ...

  3. Java中使用Socket连接判断Inputstream结束,java tcp socket服务端,python tcp socket客户端

    最近在试着用java写一个socket的服务器,用python写一个socket的客户端来完成二者之间的通信,但是发现存在一个问题,服务器方面就卡在读取inputsream的地方不动了,导致后面的代码 ...

  4. 【Python】TCP Socket的粘包和分包的处理

    Reference: http://blog.csdn.net/yannanxiu/article/details/52096465 概述 在进行TCP Socket开发时,都需要处理数据包粘包和分包 ...

  5. 计算机网络:套接字(Socket)| Python socket实现服务器端与客户端通信,使用TCP socket阿里云ECS服务器与本机通信

    所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象.一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制.从所处的地位来讲,套接字上联应 ...

  6. Python底层socket库

    Python底层socket库将Unix关于网络通信的系统调用对象化处理,是底层函数的高级封装,socket()函数返回一个套接字,它的方法实现了各种套接字系统调用.read与write与Python ...

  7. [python]初探socket

    1.什么是socket? Socket中文译作:套接字,但是大家一般约定俗称的都用:socket.我想在解释socket是什么之前,先说它是用来干嘛的:socket是来建立'通信'的基础,建立连接,传 ...

  8. 转:Python 的 Socket 编程教程

    这是用来快速学习 Python Socket 套接字编程的指南和教程.Python 的 Socket 编程跟 C 语言很像. Python 官方关于 Socket 的函数请看 http://docs. ...

  9. Python Udp Socket

    socket(套接字),传输层通信的端点,由IP和端口号组成(IP,Port),可以通过socket精确地找到服务器上的进程并与之通信 python2.6实现,基于AF_INET(网络套接字) 类型S ...

随机推荐

  1. 单服务员排队模拟100天matlab实现

    大家好,我是小鸭酱,博客地址为:http://www.cnblogs.com/xiaoyajiang %单服务员排队模型模拟100天 clear clc day = 100 ;s = zeros(1, ...

  2. CentOS下安装JDK6u21和设置环境变量bin文件

    1.先通过SSH登录到Linux系统中,通过SSH文件管理工具把Linux的JDK安装包上传到/home/acm/JavaTools/JDK目录: 2.进入/home/acm/JavaTools/JD ...

  3. 测试一下PHP官方的新一代PHP加速插件ZendOpcache的性能及配置

    过程不表,都比较顺利 参考如下URL: http://www.lvtao.net/server/ZendOpcache.html 大家知道目前PHP的缓存插件一般有三个:APC.eAccelerato ...

  4. 面试题 41 和为s的两个数字VS 和为S的连续整数序列

    (1)和为S的两个数字 bool findNumberWithSum(int data[], int length, int sum, int &numb1, int &numb2){ ...

  5. Windows 8.1 explorer.exe总是崩溃的解决办法

    方法1 卸载此补丁 KB3033889 方法2 打补丁, 更新 3033889 导致使用日语. 朝鲜语和中文输入法的系统中 Windows 资源管理器停止响应 https://support.micr ...

  6. MVC4.0 上传Excel并存入数据库

    这里的这个功能实现在WebForm很好实现,上传阶段简单的一个FileUoLoad控件就搞定了,什么取值,什么上传都是浮云,微软都帮我们封装好了,我们只需要一拖一拽就OK了,但这些在MVC中是不行的! ...

  7. cf437D The Child and Zoo

    D. The Child and Zoo time limit per test 2 seconds memory limit per test 256 megabytes input standar ...

  8. VC++中的类的内存分布(上)

    0.序 目前正在学习C++中,对于C++的类及其类的实现原理也挺感兴趣.于是打算通过观察类在内存中的分布更好地理解类的实现.因为其实类的分布是由编译器决定的,而本次试验使用的编译器为VS2015 RC ...

  9. POJ1845 数论 二分快速取余

    大致题意: 求A^B的所有约数(即因子)之和,并对其取模 9901再输出. 解题思路: 应用定理主要有三个: (1)   整数的唯一分解定理: 任意正整数都有且只有一种方式写出其素因子的乘积表达式. ...

  10. pythonchallenge学到的python内置函数整理

    第0关: 计算x的n次方: x**n 第一关: maketrans(from,to):建立一个翻译规则,将from翻译成to的翻译规则,因为要从from翻译成to,所以俩个参数的长度必须一致 tran ...