zoukankan      html  css  js  c++  java
  • python socket的简单例子

    python socket的简单例子 « Cyrec’s Blog

    python socket的简单例子

    服务端的通信过程:

    socket—>bind—>listen(连接请求)—>accept—>send(发送数据)—>recv(接受数据)—>close

    客户端的通信过程:

    socket—>bind(可选)—>connect(连接服务器)—>sends(发送数据)—>recv(接受数据)—>close

    下面是一个简单的服务端客户端的实现:

    server.py:

    01#!/usr/bin/python
    02#encoding=utf-8
    03 
    04import socket
    05 
    06s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    07#第一个参数AF_INET,AF_INET6,AF_UNIX默认AF_INET,第二个参数有SOCK_STREAM和SOCK_DGRAM
    08#默认为SOCK_STREAM流套接字提供双向有序且不重复的数据服务也可以直接写s=socket.socket()
    09 
    10#host = socket.gethostname()
    11host = ''
    12port = 1234
    13s.bind((host, port)) #绑定socket地址只有一个参数 是一个地址+端口的元组
    14 
    15s.listen(10) #开始监听,参数是队列长度
    16 
    17while True:
    18    c, addr = s.accept() #接受一个连接
    19 
    20    print 'Get connection from', addr
    21    c.send('This is a simple server') #发送数据
    22    print c.recv(1024) #读取数据
    23    c.close()

    client.py:

    01#!/usr/bin/python
    02#encoding=utf-8
    03 
    04import socket
    05 
    06s = socket.socket() #生成一个socket对象
    07 
    08server = socket.gethostname()
    09print server
    10port = 1234 #一般1024以下端口号可能会有权限限制
    11s.connect((server, port)) #连接服务器
    12print s.recv(1024) #读取数据
    13 
    14say = raw_input(u'说点什么...'.encode('gbk'))
    15s.send(str(say))
    16 
    17s.close() #关闭连接
  • 相关阅读:
    java安装jdk时,执行javac出错
    servlet入门
    maven安装出错原因分析
    备份整个schema的数据
    备份db2schema数据
    UltraEdit使用技巧
    获取数据库分组后的最大值
    什么是jsp
    linux 上使用FTP传输文件
    关于opencv进行rtsp取流播放视频特别慢的问题记录
  • 原文地址:https://www.cnblogs.com/lexus/p/2405390.html
Copyright © 2011-2022 走看看