UDP c/s结构通信

news/2024/5/18 15:29:43 标签: UDP, 网络编程, python, 通信

服务器端和客户端IP:当前主机IP(192.168.?.?)  

服务器监听端口:服务器启动时默认侦听端口为1060,当客户端有udp数据传过来时,可以对数据进行解码(utf-8)并打印出客户端传输的字符串数据,同时给发送数据的客户端传输字符串数据“你好,我是服务器+(ip,port),有事情可以随时联系我!”

客户端端口:系统随机选定(范围为10000-20000)。

要求客户端启动后给服务器发送一个字符串数据“服务器你好,我是客户端+(ip,port)”,发送完数据后客户端便处于等待服务器端使用udp协议回复信息状态,接收到回复信息后,在屏幕上输出解码后的数据。

import socket

host = '127.0.0.1'
#两个段口必须一致
port = 1060
addr = (host, port)
byte = 1024
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
while True:
    data = input('Please input the message: ')
    text = data.encode('utf-8')
    sock.sendto(text, addr)

    #输入'exit'退出
    if data == 'exit':
        break
    else:
        #getsockname返回当前套接字的信息(IP,端口号)
        print("The OS assigned me the address {}".format(sock.getsockname()))
        data, addr = sock.recvfrom(byte)
        text = data.decode("utf-8")
        print('The server {} replied{!r}'.format(addr, text))

sock.close()
import socket
byte = 1024
#两个端口要保持一致
port = 1060
host = "127.0.0.1"
addr = (host, port)

#创建套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
#绑定
sock.bind(addr)
print("waiting to receive messages...")

while True:
    (data, addr) = sock.recvfrom(byte)
    text = data.decode('utf-8')
    if text == 'exit':
        break
    else :
        print('The client at {} says {!r}'.format(addr, text))
        text = 'Hello, I am server.,Your data was {}bytes long'.format(len(data))
        data = text.encode('utf-8')
        sock.sendto(data, addr)

#关闭套接字
sock.close()

 


http://www.niftyadmin.cn/n/1365788.html

相关文章

扫描主机端口状态

建立程序能够对本机的常用接口状态进行检测,并将扫描到的活动端口信息写入到scanResult.txt文件中 常用的端口列表portLs[21, 22, 23, 25, 80, 135, 137, 139, 445, 1433, 1502, 3306, 3389, 8080, 9015] # -*- coding: utf-8 -*- """ Created on …

java web 开发环境

1.安装jdk; 2.Tomcat下载安装,试着打开:http://localhost:8080/ ,如果能够显示,则说明 tomcat正确的安装了; 3.下载安装myeclipse; 4.下载Eclipse Tomcat plugin ,解压到myeclipse的…

windows数据类型表

总共分为四张表,头三张表是M$扩展定义的window平台的数据类型,第四张表是编译器支持的原始数据类型。 Windows数据类型(1) Windows数据类型(2) Windows数据类型(3) Window数据类型 &…

动态IP获取

自己用ARM9实现了网络摄像头 但是家里拨号到ip老是变&#xff0c;导致公网外部老是访问不了。 所以想了一下&#xff0c;本来想用邮箱做IP记录 现在直接用php实现 <?phpif(isset($_GET["chk"])){ $file_pointer fopen("ip","w"); fwrite(…

网络数据与网络错误

服务器端和客户端IP&#xff1a;当前主机IP 分析给定通信程序中的client端和server端代码&#xff0c;对出现的粘包问题进行简单描述并分析出现的原因 设计一个方案解决通信中的粘包问题 对client端和server端程序进行修改&#xff0c;并验证方案的正确性 # -*- coding: u…

.NET Remoting之Helloworld

一 Remoting 1&#xff09;什么是Remoting&#xff0c; 简而言之&#xff0c;我们可以将其看作是一种分布式处理方式。从微软的产品角度来看&#xff0c;可以说Remoting就是DCOM的一种升级&#xff0c;它改善了很多功能&#xff0c;并极好的融合到.Net平台下。Microsoft.NET Re…

服务器架构

编写程序分别实现服务端和客户端要求功能 服务器能够使用TCP协议同时为多台客户端主机提供部分电影的演员信息查询服务(基于多线程或者异步通信)&#xff1a; 服务端启动后&#xff0c;需先建立数据结构来存储从movieResult.csv文件中读入的电影数据&#xff0c;并建立socket对…

http协议-数据请求

编写程序实现新闻网页数据的请求和获取数据的保存&#xff1a; 进入一个学校的新闻首页&#xff0c;分析各不同新闻网页url之间的区别和联系&#xff0c;并根据得到的规律通过程序生成所要请求的网页的url&#xff08;前30个页面&#xff09;。 使用requests库通过http协议的ge…