zoukankan      html  css  js  c++  java
  • python socket

    最简单的服务端和客户端代码:

    服务端:

    import socket       //导入socket模块
    s=socket.socket()  //利用socket中的socket()函数创建套接字对象s

    host=socket.gethostname()   //利用socket模块中的gethostname()函数获取本地的主机名
    port=12345  //设置连接所用的端口
    s.bind((host,port))  //将端口和刚刚创建的套接字对象s利用bind()函数进行绑定
    s.listen(5)   //监听,最大可连接数5
    while True:
      c,addr=s.accept()        //客户端连接过来后,accept()函数会返回两个数据(可用来和相应客户端收发数据的对象,客户端的ip),序列解包后赋给对象c和变量addr
      print("Got connection from '%s'"%addr)  //不解释
      c.send('Thank you for connecting')  //利用象c给相应的客户端发送数据
      c.close()  //关闭对象c

    #---------------------------------------------------------------------------------------------

    客户端:

    import socket  //导入socket模块
    s=socket.socket()  //创建套接字对象s

    host=socket.gethostname()  //获取本地主机ip
    port=12345  //设置端口号
    s.connect((host,port))  //引用套接字对象s中的connect()函数和服务端发起连接
    print(s.recv(1024))  //服务端连接后会返回一个空字符串,如果服务端设置一个send(),则返回这个send中的字符串,recv()函数就是接收这个字符串,一次最大接收的字节在此例中为1024
    s.close  //关闭套接字对象

    #------------------------------------------------------------------------------------------------

    *.如果按照上面这个代码去执行,只能是在本地,因为host设置的是本地

    socket.listen(backlog)

    监听连接到该服务器套接字的连接,backlog参数指定最大的连接数队列数,该数最小为1,最大是多少和所用系统有关

    socket.recv(bufsize[,flags])

    接受从服务端返回的数据,返回值是一个代表返回的数据的字节对象,bufsize指定一次接收数据的最大字节数,flags参数为可选的,具体意义看unix手册中的recv(2),flags默认为0

  • 相关阅读:
    Redis学习笔记——环境搭建
    SQL 记录
    路径“D:svn.....”的访问被拒绝问题处理
    去除浏览器自动给input赋值的问题
    获取用户IP
    JS对身份证号码进行验证方法
    JS 实现倒计时
    SQL 游标
    .net上传图片实例
    生成唯一码
  • 原文地址:https://www.cnblogs.com/lianrenjujishou/p/5161221.html
Copyright © 2011-2022 走看看