socket网络编程之udp聊天器

 1 from socket import *
 2
 3 def send_msg(udp_socket):
 4     ‘‘‘发送消息‘‘‘
 5     # 获取要发送的内容
 6     dest_ip = input("请输入对方IP:")
 7     dest_port = int(input("请输入对方port:"))
 8     send_data = input("请输入要发送的消息:")
 9     udp_socket.sendto(send_data.encode(‘utf-8‘),(dest_ip,dest_port))
10
11 def recv_msg(udp_socket):
12     """接收消息"""
13     recv_data = udp_socket.recvfrom(1024)
14     print("%s:%s" % (str(recv_data[1]), recv_data[0].decode(‘utf-8‘)))
15
16 def main():
17     # 创建套接字
18     udp_socket = socket(AF_INET, SOCK_DGRAM)
19     udp_socket.bind(("", 7899))
20     # while循环来处理事情
21     while True:
22         print("----微Q聊天器-----")
23         print("1|发送消息")
24         print("2|接收消息")
25         print("3|退出程序")
26         op = input("请选择功能")
27         if op == "1":
28             send_msg(udp_socket)
29         elif op == "2":
30             recv_msg(udp_socket)
31         elif op == "0":
32             break
33         else:
34             print("输入有误")
35
36
37 if __name__ == ‘__main__‘:
38     main()

因为没有装虚拟机,所以就用pycharm 和 powershell 分别运行实现程序的功能。

下面是运行程序后的结果:

原文地址:https://www.cnblogs.com/west-yang/p/10436418.html

时间: 2024-10-13 11:17:38

socket网络编程之udp聊天器的相关文章

黑马程序员——Java网络编程之UDP传输

网络编程 网络模型 通讯要素:InetAddress(对象):ip地址,网络中设备的标识,不可记忆,可用主机名,本地回环地址:127.0.0.1主机名localhost 端口号 传输协议:UDP,将数据的源及目的封装成数据包中,不需要建立连接,每个数据包的大小限制在64K内,无连接,是不可靠协议,不需要建立连接,速度快.力求速度,不求数据的准确性.比如聊天软件,网络会议. TCP:建立连接,形成传输数据的通道,在连接中进行大数据量传输,通过三次握手完成连接,是可靠协议,必须建立连接效率稍低. S

java网络编程之UDP实例

package Socket; import java.net.DatagramPacket; import java.net.InetAddress; public class Dgram { public static DatagramPacket toDatagram(String s, InetAddress destIA, int destPort) { byte[] buf = new byte[s.length() + 1]; s.getBytes(0, s.length(), b

网络编程之UDP编程

网络编程之UDP编程 UDP协议是一种不可靠的网络协议,它在通信的2端各建立一个Socket,但是这个Socket之间并没有虚拟链路,这2个Socket只是发送和接受数据的对象,Java提供了DatagramSocket对象作为基于UDP协议的Socket,使用DatagramPacket代表DatagramSocket发送和接受数据报.值得注意的是:UDP编程必须先由客户端发出信息.一个客户端就是一封信,Socket相当于美国式邮筒(信件的收发都在一个邮筒中).端口与协议相关,所以TCP的30

[学习笔记]Java网络编程之UDP通讯

1. 体系结构 计算机网络各层及其协议的集合,称为网络的体系结构.目前公认的计算机网络体系结构有概念清楚理论完善的OSI七层协议结构和实际上广泛应用的TCP/IP四层体系结构. 2. 各层概述 应用层:直接为用户的程序提供服务,如支持万维网应用的HTTP协议,支持电子邮件的SMTP协议等. 运输层:负责向两个主机中进程之间的通信提供服务,主要使用面向连接的TCP协议和无连接的UDP协议. 网络层:负责为分组交换网上不同主机提供地址交付的通信服务,该层使用IP协议,所以在该层传送的数据称之为IP数

黑马程序员—网络编程之UDP

--Java培训.Android培训.iOS培训..Net培训.期待与您交流! -- udp第一讲 ds=new DatagramSocket()即可做发送,也可做接收 字节数组byte [] by=new byte[1024]; 数据包 DatagramPacket dp=new DatagramPacket(by,by.length,InetAddress.getByName("localhost"),8080); DatagramPacket dp2=new DatagramPa

Unix网络编程之UDP常见缺陷与实例

UDP与TCP相比,各有优缺点,下来来列举一下UDP的缺点: 1.UDP是一种不可靠的协议(缺乏流量控制) 实例代码: //server.c #include <stdlib.h> #include <stdio.h> #include <sys/socket.h> #include <netinet/in.h> #include <string.h> int main() { int sockfd; struct sockaddr_in ser

浅析Java网络编程之UDP传输(一)

网络传输方式一般有两种--TCP和UDP.本文用于简单了解一下UDP传输方式. 一.UDP有何特点? 1.面向无连接的: 2.面向报文的,且每一份报文不超过64KB: 3.不可靠但高效(不用建立连接): 4.支持一对一.一对多.多对一.多对多的交互通讯: 对于这些特点,没有什么为什么,事实而已啦! 二.在Java中怎么玩UDP? 在Java中,将建立UDP服务相关操作封装到了DatagramSocket类中,将数据报相关操作封装到了DatagramPacket类中. 三.具体玩的思路是什么? U

java 25 - 4 网络编程之 UDP协议传输的代码优化

UDP协议的输出端: 1 /* 2 UDP发送数据: 3 A:创建Socket发送端对象 4 B:创建数据报包(把数据打包) 5 C:调用Socket对象发送数据报包 6 D:释放资源(底层是IO流) 7 */ 8 public class NewSend { 9 10 public static void main(String[] args) throws IOException { 11 12 // A:创建Socket发送端对象 13 DatagramSocket ds = new Da

java 25 - 4 网络编程之 UDP协议传输思路

UDP传输 两个类:DatagramSocket与DatagramPacket(具体看API) A:建立发送端,接收端. B:建立数据包. C:调用Socket的发送接收方法. D:关闭Socket. E:发送端与接收端是两个独立的运行程序. UDP传输-发送端思路 UDP发送数据: A:创建Socket发送端对象 B:创建数据报包(把数据打包) C:调用Socket对象发送数据报包 D:释放资源(底层是IO流) UDP传输-发送端代码 1 public static void main(Str