首页
登录 | 注册

基于Python的socket编程

服务端:
#socket server端
#获取socket构造及常量
from socket import *
#''代表服务器为localhost
myHost = ''
#在一个非保留端口号上进行监听
myPort = 50007
#设置一个TCP socket对象
sockobj = socket(AF_INET, SOCK_STREAM)
#绑定它至端口号
sockobj.bind((myHost, myPort))
#监听,允许5个连结
sockobj.listen(5)
#直到进程结束时才结束循环
while True:
    #等待下一个客户端连结
    connection, address = sockobj.accept( )
    #连结是一个新的socket
    print 'Server connected by', address
    while True:
        #读取客户端套接字的下一行
        data = connection.recv(1024)
        #如果没有数量的话,那么跳出循环
        if not data: break
        #发送一个回复至客户端
        connection.send('Echo=>' + data)
    #当socket关闭时eof   
    connection.close( )
 
客户端:

import sys
from socket import *
serverHost = 'localhost'
serverPort = 50007
#发送至服务端的默认文本
message = ['Hello network world']
#如果参数大于1的话,连结的服务端为第一个参数
if len(sys.argv) > 1:
    serverHost = sys.argv[1]
    #如果参数大于2的话,连结的文字为第二个参数
    if len(sys.argv) > 2:
        message = sys.argv[2:]
#建立一个tcp/ip套接字对象
sockobj = socket(AF_INET, SOCK_STREAM)
#连结至服务器及端口
sockobj.connect((serverHost, serverPort))
for line in message:
    #经过套按字发送line至服务端
    sockobj.send(line)
    #从服务端接收到的数据,上限为1k
    data = sockobj.recv(1024)
    #确认他是引用的,是'x'
    print 'Client received:', repr(data)
#关闭套接字
sockobj.close( )
 

相关文章

  • 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理.awesome-python 是 vinta 发起维护的 Python 资源列表,内容包括:Web 框架.网络爬虫.网络内容提取.模板引擎.数据库. ...
  • 分享个JAVA学习路线[新手可以参考看下]觉得不好的,大家可以提出来我补充. 第一阶段 技术名称 技术内容 J2SE (java基础部分) java开发前奏 计算机基本原理,Java语言发展简史以及开发环境的搭建,体验Java程序的开发,环 ...
  • 新RTMFP流媒体服务器 MonaServer 源码编译安装-T
    MonaServer 源码编译安装   MonaServer 是Cumulus这个项目衍生出来的新项目,前身Cumulus在github中注明了Cumulus已经比较老,希望使用最新的RTMFP的server的话可以尝试MonaServer ...
  • Centos zeromq 消息队列 安装
    这是个类似于Socket的一系列接口,他跟Socket的区别是:普通的socket是端到端的(1:1的关系),而ZMQ却是可以N:M 的关系,人们对BSD套接字的了解较多的是点对点的连接,点对点连接需要显式地建立连接.销毁连接.选择协议(T ...
  • Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect.accept.recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进 ...
  • 现象: linux下C++开发的网络服务器程序,在页面刷新时有时候会出现进程退出的情况.使用gdb调试,发现是系统发送了SIGPIPE信号,导致进程退出的. 规避或解决方法: 最根本的解决办法是提高socket编程recv或send函数的健 ...

2020 unjeep.com webmaster#unjeep.com
12 q. 0.012 s.
苏ICP备12049786号-20