zoukankan      html  css  js  c++  java
  • 网络编程_tcp与dup协议简单应用

    老师的博客:http://www.cnblogs.com/Eva-J/articles/8066842.html 计算机网络基础

           :http://www.cnblogs.com/Eva-J/articles/8244551.html 网络编程

    基于TCP协议的简单的发消息

    server

    import socket
    from socket import SOL_SOCKET,SO_REUSEADDR
    tool=socket.socket()
    tool.setsockopt(SOL_SOCKET,SO_REUSEADDR,1)
    tool.bind(('192.168.43.155',8891))#IP port
    tool.listen()#监听连接
    connect,address=tool.accept()#接受client的信息,建立三次握手
    get=connect.recv(1024).decode('utf-8')#接受信息
    print(get)
    connect.send(bytes('you can go oher place'.encode('utf-8')))
    get = connect.recv(1024).decode('utf-8')
    print(get)
    connect.close()

    注意,当建立三次握手后,所有的操作前缀都是你拿到的那个链接,而下面的client的前缀都是自己的那个前缀

    client

    import socket
    client=socket.socket()
    client.connect(('192.168.43.155',8891))#建立三次握手
    client.send(bytes('i am coming'.encode('utf-8')))#发信息
    get = client.recv(1024).decode('utf-8')#接受信息
    print(get)
    client.send(bytes('i only say goodbye'.encode('utf-8')))
    client.close()

     TCP协议是,建立连接时,谁先发送消息都可以,但是注意的是,必须是一发一收,一发一收,按照顺序来。serve接受时,不必写入地址,因为tcp协议是面向

    的协议

    基于DUP协议

    server

    import socket
    ip_port=('192.168.43.155',8898)
    server=socket.socket(type=socket.SOCK_DGRAM)
    server.bind(ip_port)
    message,address=server.recvfrom(1024)
    set = message.decode('utf-8')
    print(set)
    print('client address:',address)
    server.sendto(bytes('i know you coming'.encode('utf-8')),address)
    message,address=server.recvfrom(1024)
    print(message.decode('utf-8'))
    print('client address:',address)
    server.close()

    client

    import socket
    ip_port=('192.168.43.155',8898)
    client=socket.socket(type=socket.SOCK_DGRAM)
    client.sendto(bytes('i am coming'.encode('utf-8')),ip_port)
    message,address=client.recvfrom(1024)
    print('sever address:',address)
    print(message.decode('utf-8'))
    client.sendto(bytes('i am going'.encode('utf-8')),address)
    client.close()

     udp 协议不必遵循发一收一,但是发几条信息得收几条信息,发送信息是和接受信息时必需带上地址

  • 相关阅读:
    nvalid bound statement (not found)
    小程序
    maven启动项目时报错
    创建Maven项目出错
    小程序的tab标签实现效果
    C# 异步
    C#中计算时间差
    linq筛选唯一
    GMap.net控件学习记录
    nodepad++ 正则 替换
  • 原文地址:https://www.cnblogs.com/accolade/p/10526877.html
Copyright © 2011-2022 走看看