• UDP接收端


    1. 接收端启动文件
 1 import java.net.DatagramSocket;
2 import java.net.SocketException;
3
4 public class Server {
5
6 public static void main(String[] args){
7
8 try {
9
10 DatagramSocket socket = new DatagramSocket(9999);
11 ServerThread sThread = new ServerThread(socket);
12 sThread.start();
13
14 } catch (SocketException e) {
15
16 e.printStackTrace();
17 }
21 }
24 }
    1. 接收端线程文件
 1 import java.io.IOException;
2 import java.net.DatagramPacket;
3 import java.net.DatagramSocket;
4 import java.net.InetAddress;
5 import java.net.SocketException;
6
7 public class ServerThread extends Thread{
8
9 DatagramSocket socket = null;
10
11 public ServerThread(DatagramSocket socket) {
12 super();
13 this.socket = socket;
14 }
15
16 @Override
17 public void run() {
18 super.run();
19
20 try {
21 // socket = new DatagramSocket(9999);
22
23 //建立数据包
24 byte []buf = new byte[1024];
25 DatagramPacket packet = new DatagramPacket(buf, buf.length);
26 System.out.println( "服务器开始运行...." );
27 while(true) {
28
29 //接收客户端数据
30 socket.receive(packet);
31
32 //读取数据包的内容
33 String data = new String(buf, 0, packet.getLength());
34 System.out.println("我是服务器,接收到客户端的消息:"+data);
35
36 //发送,先获取客户端信息
37 InetAddress address = packet.getAddress();
38 int port = packet.getPort();
39 byte []str = "服务器响应:你好".getBytes();
40 DatagramPacket packet2 = new DatagramPacket(str, str.length,address,port);
41 socket.send(packet2);
42
43 }
44
45 } catch (SocketException e) {
46 e.printStackTrace();
47 } catch (IOException e) {
48 // TODO Auto-generated catch block
49 e.printStackTrace();
50 }
51 finally {
52 socket.close();
53 }
54
55 }
56 }
  • UDP发送端


 1 import java.io.IOException;
2 import java.net.DatagramPacket;
3 import java.net.DatagramSocket;
4 import java.net.InetAddress;
5 import java.net.SocketException;
6 import java.text.SimpleDateFormat;
7 import java.util.Date;
8 import java.util.Scanner;
9
10 public class Client {
11
12 public static void main(String[] args) throws IOException{
13
14 DatagramSocket socket = null;
15
16 try {
17
18 socket = new DatagramSocket();//udp不用端口号
19
20 while(true) {
21 //时间
22 Date myDate = new Date();
23 SimpleDateFormat dFormat = new SimpleDateFormat("HH:mm:ss");
24 //发送信息
25 InetAddress address = InetAddress.getLocalHost();//取得服务器地址
26 int port = 9999;
27
28 Scanner input = new Scanner(System.in);//改为输入发送
29 String inContent ="\r\n" + dFormat.format(myDate) + "\r\n" +"黄哥哥说:"+ input.next();
30
31 byte []str = inContent.getBytes();
32 DatagramPacket packet2 = new DatagramPacket(str, str.length,address,port);//InetAddress.getByName( "192.168.4.198" )
33 socket.send(packet2);
34
35 //接收信息
36 //建立数据报包
37 byte []buf = new byte[1024];
38 DatagramPacket packet = new DatagramPacket(buf, buf.length);
39
40 //接收服务器信息
41 socket.receive(packet);
42
43 //读取数据包的内容
44 String data = new String(buf, 0, packet.getLength());
45 System.out.println(data);
46
47 }
48 } catch (SocketException e) {
49 // TODO Auto-generated catch block
50 e.printStackTrace();
51 }finally {
52 //关闭
53 socket.close();
54 }
55
56 }
57 }

 

  • 运行效果


  1. 发送端发送消息,接收端回应

2.接收端收到的消息

UDP接收端和发送端_Socket编程的更多相关文章

  1. Java网络编程(UDP协议:发送端)

    package WebProgramingDemo; import java.io.IOException; import java.net.DatagramPacket; import java.n ...

  2. C# TCP socket发送大数据包时,接收端和发送端数据不一致 服务端接收Receive不完全

    简单的c# TCP通讯(TcpListener) C# 的TCP Socket (同步方式) C# 的TCP Socket (异步方式) C# 的tcp Socket设置自定义超时时间 C# TCP ...

  3. 网络编程_UDP协议_发送端与接收端

    创建UDP传输的发送端 : 1.建立udp的socket服务   2.将要发送的数据封装到数据包中   3.通过udp的socket服务 将数据包发送出去   4.关闭socket服务(因为调用了系统 ...

  4. java实现udp发送端和接收端

    发送端: package demo02; import java.io.IOException; import java.net.DatagramPacket; import java.net.Dat ...

  5. Flink中发送端反压以及Credit机制(源码分析)

    上一篇<Flink接收端反压机制>说到因为Flink每个Task的接收端和发送端是共享一个bufferPool的,形成了天然的反压机制,当Task接收数据的时候,接收端会根据积压的数据量以 ...

  6. c/c++ 网络编程 UDP 发送端 bind 作用

    网络编程 UDP 发送端 bind 作用 upd 发送端 调用bind函数的效果:把socket特定到一个指定的端口,如果不调用bind,内核会随机分配一个端口. upd 发送端 调用bind函数的目 ...

  7. Java基础知识强化之网络编程笔记04:UDP之发送端的数据来自于键盘录入案例

    1. 数据来自于键盘录入 键盘录入数据要自己控制录入结束. 2. 代码实现: (1)发送端: package com.himi.updDemo1; import java.io.IOException ...

  8. 基于C#的UDP通信(使用UdpClient实现,包含发送端和接收端)

    UDP不属于面向连接的通信,在选择使用协议的时候,选择UDP必须要谨慎.在网络质量令人十分不满意的环境下,UDP协议数据包丢失会比较严重.但是由于UDP的特性:它不属于连接型协议,因而具有资源消耗小, ...

  9. Udp发送端和接收端

    //UdpReceive.java /* 定义udp的接收端. 思路: 1.定义udpSocket服务.一般会监听一个端口,事实上就是这个接收网络应用程序定义一个数字标示. 2.定义一个数据包.用来存 ...

随机推荐

  1. NX二次开发-创建NX9 NXOpenCPP Wizard开发向导模板

    这篇文章,我在CSDN,在唐工论坛都发过.http://www.nxopen.cn/forum.php?mod=viewthread&tid=2039&highlight=NX9 博客 ...

  2. LeetCode通关:连刷三十九道二叉树,刷疯了!

    分门别类刷算法,坚持,进步! 刷题路线参考:https://github.com/youngyangyang04/leetcode-master 大家好,我是拿输出博客来督促自己刷题的老三,这一节我们 ...

  3. 临时性备用 socks 巧(科)妙(学)上网,你懂的,不多解释

    最近 Shadowsock s 不稳定,极大的影响了工作效率.不过 ssh 还能连上自己的机器,所以掏出 ssh -D 满足自己 #!/usr/bin/env bash disable_proxy() ...

  4. 自己写一个Map

    Map的实现其实很简单,一个key对应一个value就行 . 本Map是写着玩的,是想告诉初学者我们也可以写一个简单的Map来自己用 代码: public class MyMap<K, V> ...

  5. uni-app中websocket的使用 断开重连、心跳机制

    前言 最近关于H5和APP的开发中使用到了webSocket,由于web/app有时候会出现网络不稳定或者服务端主动断开,这时候导致消息推送不了的情况,需要客户端进行重连.查阅资料后发现了一个心跳机制 ...

  6. 20210501 序列,熟练剖分(tree),建造游乐园(play)

    考场 \(65+5+0\),并列 rk2 最高分 \(55+10+10\) T1:等比数列可以写作 \(q^kx\),发现 \(q\le1000\) 且有一档分为 \(a_i\le100\),想到 \ ...

  7. Linux常用命令 - rm命令详解

    21篇测试必备的Linux常用命令,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1672457.html 删除/ ...

  8. [第十篇]——Docker 容器连接之Spring Cloud直播商城 b2b2c电子商务技术总结

    Docker 容器连接 前面我们实现了通过网络端口来访问运行在 docker 容器内的服务. 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过  -P 或  -p 参数来指定端口映射. ...

  9. 【第十篇】- Git 远程仓库(Github)之Spring Cloud直播商城 b2b2c电子商务技术总结

    Git 远程仓库(Github) Git 并不像 SVN 那样有个中心服务器. 目前我们使用到的 Git 命令都是在本地执行,如果你想通过 Git 分享你的代码或者与其他开发人员合作. 你就需要将数据 ...

  10. 在开发中使用GMap.Net 控件的心得一

    首先必须先加载GMap.Net这个控件,先通过"添加引用"来加载相应的.dll文件,如果在工具箱中找不到GMapControl这个控件,也别心急. 点击"工具" ...