socket发送、接收信息----UDP
# 导入套接字包
import socket def welcome():
print("------欢迎进入UDP聊天器--------")
print("1.发送信息")
print("2.接收信息")
print("0.退出聊天器") def send_msg(udp_socket):
dest_ip = input("请输入目标ip:")
dest_port = int(input("请输入目标端口:"))
send_data = input("请输入要发送的内容")
# sendto(内容,(目标IP,端口))
udp_socket.sendto(send_data.encode("gbk"), (dest_ip, dest_port)) def recv_msg(udp_socket):
# recvfrom(接收最大字节)
rece_data = udp_socket.recvfrom(1024)
# 要解码,不然会乱码
print("%s:%s" % (rece_data[1], rece_data[0].decode("gbk"))) def main():
# 创建套接字对象
udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
# 绑定端口
# bing((ip,port)) bind里面是一个元组,第一个放ip 可以为空,第二个是端口
udp_socket.bind(('',7788))
while True:
# 欢迎菜单
welcome()
# 选择功能
op = input("请输入想要执行的命令:")
if op == "":
# 发送信息
send_msg(udp_socket)
elif op == "":
# 接收信息
recv_msg(udp_socket)
elif op == "":
break
else:
print("请选择正确的指令:")
# 关闭套接字
udp_socket.close() if __name__ == '__main__':
main()
socket发送、接收信息----UDP的更多相关文章
- TCP/IP Socket发送接收图片demo
一个实例通过client端和server端通讯 客户端通过TCP/IP传输资源文件,比如图片,文字,音频,视频等..... 服务端接受到文件存入本地磁盘,返回接受到:“收到来自于"+s.ge ...
- C# Socket发送接收字节数组和十六16进制之间转换函数
近期在使用远程网络模块的时候, 需要用的Socket发送数据,远程模块指令为16进制. 官方提供的DEMO比较繁琐.不方便新手使用. 下面的转换函数可大大方便新手使用. // 16进制字符串转字节数组 ...
- C# Socket 发送&接收&返回
因为工作比较忙,好久没有写过博客了,最近因项目需求,需要用到Socket来进行通信,简单写了几个例子,记录一下,代码很简单,无非就是接收与发送,以及接收到数据后返回一个自定义信息,也可以说是发送. 先 ...
- 一个socket发送调试信息的类
using UnityEngine; using System.Collections; using System; using System.Net.Sockets; using System.Ne ...
- Java-->打包发送信息(UDP协议)
--> 好像UDP 协议没有TCP 协议应用得那么广泛 --> UdpSender 类定义一个发送端(快递公司) package com.dragon.java.udpdatagram; ...
- [Python] socket发送UDP广播实现聊天室功能
一.说明 本文主要使用socket.socket发送UDP广播来实现聊天室功能. 重点难点:理解UDP通讯流程.多线程.UDP广播收发等. 测试环境:Win10\Python3.5. 程序基本流程:创 ...
- 从缓冲上看阻塞与非阻塞socket在发送接收上的区别
最近在网络上看到一些帖子以及回复,同时又搜索了一些网络上关于阻塞非阻塞区别的描述,发现很多人在描述两者的发送接收时操作返回以及缓冲区处理的区别时有不同程度的误解.所以我想写一篇文章来纠正错误,并作为记 ...
- 网络编程--使用UDP发送接收数据
package com.zhangxueliang.udp; import java.io.IOException; import java.net.DatagramPacket; import ja ...
- socket 异步 发送 接收 数据
Socket socketClints = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); / ...
随机推荐
- linux下源码安装rabbitMq
一.安装erlang前期环境安装1.利用yum安装erlang编译所依赖的环境 yum -y install make gcc gcc-c++ kernel-devel m4ncurses-devel ...
- 使用qt creator来编译 调试 用CMakeLists组织的工程
爱情原如树叶一样,在人忽视里绿了,在忍耐里露出蓓蕾. -- 何其芳 使用CMake作为构建系统,需要自己写 ...
- [Xamarin] - "GenerateJavaStubs" 异常之解决
背景 新建的 Xamarin 项目,编译失败. Error The "GenerateJavaStubs" task failed unexpectedly.Error The s ...
- 【Linux】一步一步学Linux——Linux发展史(01)
目录 00. 目录 01. Linux概述 02. Linux简史 03. Linux主要特性 04. Linux之父 05. Linux相关术语 06. Linux其它 07. Linux应用领域 ...
- TZOJ3133: 求对称点
#include<stdio.h> int main() { double a,b,c,d,e,f,g,h,i; while(~scanf("%lf %lf %lf %lf %l ...
- MySQL容量规划和性能测试
性能容量关键指标: 每秒tps,峰值tps 基础数据量,日均增长数据量 最大连接数 内存分配 IOPS 重点关注指标: 业务指标: 每秒并发用户请求.每秒订单数.用户请求响应时长 折算成性能指标: q ...
- MySQL新项目如何确保上线安全
大纲 DBA最应该做的事情 新项目开发环境应该注意什么 功能测试和压力测试MySQL DBA关注点 线上环境关注点 业务在大压力情况下,MySQL如何能活下来 DBA最应该做的事情 备份 建议每天全备 ...
- IdentityServer4 手动验签及日志记录
IdentityServer4的基础知识和使用方式网上有很多特别优秀的文章,如果有对其不了解的推荐阅读一下下面的两篇文章 http://www.ruanyifeng.com/blog/2014/05/ ...
- Eclipse RCP难点:给Command传递参数(Object)
这个问题网络上没有答案,国外网站上也没有,本人研究了一天,终于搞明白如何实现,实际上是Eclipse RCP的ICommandService本身就已经提供的方法,只是网络上教的都是使用IHandler ...
- WPF打印控件内容
当我们想打印控件内容时,如一个Grid中的内容,可以用WPF中PrintDialog类的PrintVisual()方法来实现 界面如下: XAML代码如下 <Grid> <Grid. ...