zoukankan      html  css  js  c++  java
  • socket | tcp客户端 tcp服务器 udp客户端 udp 服务器 创建方法

    tcp服务器

    #coding=utf-8
    '''
    这里是tcp服务器端,要先启动
    '''
    import socket
    import threading
    
    bind_ip  = "0.0.0.0"
    bind_port = 9999
    
    '''
    "0.0.0.0"
    在服务器端它表示
    本机上的所有IPV4地址,如果一个服务有多个IP地址(192.168.1.2和10.1.1.12),那么我们如果设置的监听地址是0.0.0.0那么我们无论是通过IP192.168.1.2还是10.1.1.12都是可以访问该服务的。
    在路由中,0.0.0.0表示的是默认路由,即当路由表中没有找到完全匹配的路由的时候所对应的路由。
    '''
    
    # 创建服务器端的套接字
    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
    server.bind((bind_ip,bind_port))
    
    server.listen(5)
    
    print "[*] Listening on %s:%d" % (bind_ip,bind_port)
    
    # 用来跟客户端通信的
    def handle_client(client_socket):
    
        # 接受客户端的信息
        request = client_socket.recv(1024)
        
        print "[*] Received: %s" % request    
    
        # 向客户端发送信息
        client_socket.send("这里是服务器端!")
        '''
        getpeername()用于得到与某个套接字关联的外地协议地址,说白了就是得到客户端
        '''
        print client_socket.getpeername()
        client_socket.close()
    
    
    while True:
    
        client,addr = server.accept()
        
        print "[*] Accepted connection from: %s:%d" % (addr[0],addr[1])
    
        # 用多线程
        client_handler = threading.Thread(target=handle_client,args=(client,))
        client_handler.start()

    tcp客户端:

    #coding=utf-8
    '''
    这里是tcpd的客户端
    需要服务器端先打开端口
    '''
    import socket
    # 创建套接字对象 确定要连接的服务器
    # target_host=input("请输入目标ip:")
    # # print target_host
    # target_port=input("请输入目标端口:")
    target_host="127.0.0.1"
    target_port=9999
    clinet = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    
    clinet.connect((target_host,target_port))
    clinet.send("这里是tcp客户端")
    response = clinet.recv(4096)
    print response

    udp客户端:

    #coding=utf-8
    '''
    这里是udp的客户端
    需要服务器端先打开端口
    '''
    import socket
    
    target_host="127.0.0.1"
    target_port=9999
    clinet = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    
    clinet.sendto("这里是udp客户端",(target_host,target_port))
    response,addr = clinet.recvfrom(4096)
    print "udp客户单开始执行"
    print response
    print addr

    udp服务器:

    # coding=utf-8
    '''
    import socket
    import threading
    from time import *
    bind_ip = "0.0.0.0"
    bind_port = 9999
    
    
    # 创建服务器端的套接字
    server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    
    server.bind((bind_ip, bind_port))
    
    
    print "[*] Listening on %s:%d" % (bind_ip, bind_port)
    
    while True:
    
        data,addr=server.recvfrom(1024)
        server.sendto("这里是udp客户端")
        print "接收:",data
    
    server.close()
    待完善
  • 相关阅读:
    PHP引用与global操作符
    php关联数组与索引数组及其显示
    vim列模式
    PHP 魔术方法之__set() __get() 方法
    给图片、表格、公式自编号
    如何将本地项目与coding.net/github上的项目绑定
    用 ElementTree 在 Python 中解析 XML
    用 ElementTree 在 Python 中解析 XML
    正则表达式介绍
    一个javascript面试题解析
  • 原文地址:https://www.cnblogs.com/chrysanthemum/p/11502957.html
Copyright © 2011-2022 走看看