zoukankan      html  css  js  c++  java
  • Python(九)之网络编程

    一般的网络通信:

    Python中利用socket模块实现网络主机间通讯:

    socket.socket(family,type)

    family:套接字类型

           AF_INET

           AF_UNIX

    type:

           STREAM:tcp 流式

           SOCK_DGRAM:udp 用户数据报

    基于TCP服务端编程:

    第一步:建立套接字对象:

           tcpconn=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

    第二步:绑定地址

           使用套接字对象的bind方法绑定与某地址和端口

           tcpconn.bind((‘ip’,port))

           tcpconn.bind(('192.168.2.168',8089))

    第三步:使用listen方法进行监听

           tcpconn.listen(backlog)

           tcpconn.listen(100)

    第四步:循环监听状态

           使用套接字对象的accept方法接收用户请求

           ci,cp = tcpconn.accept()

           返回套接字对象和元组

    编写客户端程序:

    第一步,创建socket对象以连接服务器端

           clientsock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

    第二步:

           clientsock.connect((‘server_ip’,port))

           clientsock.connect((‘192.168.2.168’,8089))

    第三步:发送请求

           clientsock.send()   

    一个简单的服务端和客户端编程的实现:

    服务端:mysocket.py

    #!/usr/local/bin/python
    import socket
    tcpconn = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    server_addr = ('192.168.2.168',8089)
    tcpconn.bind(server_addr)
    tcpconn.listen(20)
    while True:
        cinfo,caddr = tcpconn.accept()
        print "Got a connect from %s" % caddr[0]
        data = cinfo.recv(1024)
        print "Receive data:%s" % data
        cinfo.send("My is server,your data is "+ data)
        cinfo.close()
    

     客户端:csocket.py

    #!/usr/local/bin/python
    import socket
    tcpconn = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    server_addr = ('192.168.2.168',8089)
    tcpconn.bind(server_addr)
    tcpconn.listen(20)
    while True:
        cinfo,caddr = tcpconn.accept()
        print "Got a connect from %s" % caddr[0]
        data = cinfo.recv(1024)
        print "Receive data:%s" % data
        cinfo.send("My is server,your data is "+ data)
        cinfo.close()
    

     

  • 相关阅读:
    eclipse luna maven失效的原因
    利用线性探测法解决hash冲突
    PHP和JavaScript将字符串转换为数字string2int
    JavaScript 编程易错点整理
    使用phpstudy创建本地虚拟主机
    单例模式
    PHP使用cookie时遇到的坑
    Redis安装与配置
    CI框架2.x的验证码中所遇问题解决
    用delete和trancate删除表记录的区别
  • 原文地址:https://www.cnblogs.com/jjzd/p/6936607.html
Copyright © 2011-2022 走看看