UDP即时小通信

package 第十二章;

import java.io.IOException;
import java.net.*;

public class UDPServer {
	/***
	 *
	 * @param args
	 * @throws IOException
	 */
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub

		System.out.println("服务器开启成功");
		DatagramSocket socket=new DatagramSocket(55555);

		while(true){
			byte[]b=new byte[1024];
//			UDP以数据包的形式发送
			DatagramPacket packet=new DatagramPacket(b,b.length);
			socket.receive(packet);

			String s=new String(packet.getData(),0,packet.getLength());
//			获得到发送端的IP
			String ip=packet.getAddress().toString();

			System.out.println(ip+":"+s);

		}

	}

}
//客户端

ackage 第十二章;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.Socket;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Scanner;

public class UDPClient {
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		while(true){
			Scanner scan=new Scanner(System.in);
			System.out.println("请输入要发送的数据");
			String str =new String();
			str=scan.nextLine();
			byte[]b=str.getBytes();
//			服务器端的IP地址
			InetAddress serverAddress=InetAddress.getByName("192.168.1.179");
//			参数列表:字节数组,数组的长度,服务器的IP地址,服务器的端口号
			DatagramPacket packet=new DatagramPacket(b,b.length,serverAddress,55555);

//			DatagramSocket可以将这个数据包发送到服务器
			DatagramSocket socket=new DatagramSocket();
			socket.send(packet);
		}

	}

}
时间: 2024-11-13 11:20:00

UDP即时小通信的相关文章

TCP即时小通信

package 第十二章; import java.io.*; import java.net.*; public class TcpServer { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub ServerSocket server=new ServerSocket(55555); Socket s=server.accept(); InputStr

JAVA基础知识之网络编程——-基于UDP协议的通信例子

UDP是一种不可靠的协议,它在通信两端各建立一个socket,这两个socket不会建立持久的通信连接,只会单方面向对方发送数据,不检查发送结果. java中基于UDP协议的通信使用DatagramSocket类的receive和send方法即可,但消息需要通过一个特定的类封装(DatagramPacket) 下面是一个基于UDP协议的通信的例子, 服务器端, 1 package udp; 2 3 import java.io.IOException; 4 import java.net.Dat

[java]基于UDP的Socket通信Demo

java课编程作业:在老师给的demo的基础上实现客户端发送数据到服务器端,服务器端接受客户端后进行数据广播. 整体功能类似于聊天室,代码部分不是太难,但是在本机测试的时候出现这样的问题: 服务端通过将每一个Socket客户端的IP存入Set集合,每次接受到数据后都向当前所有的IP转发.但是本机演示的时候所有开的ChatClient客户端都是同一IP,怎么测试呢? 解决办法就是本机测试时候服务端向多个不同的端口转发就好了,这样跑起来的客户端是在不同端口上进行监听的(只是为了实现广播,实际应用下还

uip UDP客户端模式通信移植,本地端口可以随机

目前移植了UDP客户端模式,测试使用广播地址. //udp_client.c /************************************************************************************************************* * 文件名: udp_client.c * 功能: uIP UDP客户端相关函数 * 作者: [email protected] * 创建时间: 2014-06-06 * 最后修改时间: 2014-0

Java 网络编程(六) 使用无连接的数据报(UDP)进行通信

连接地址:http://www.cnblogs.com/mengdd/archive/2013/03/10/2952673.html 使用无连接的数据报(UDP)进行通信 什么是Datagram? 数据报是网上传输的独立数据包,数据报是否能正确地到达目的地,到达的时间,顺序,内容的正确性均没有保障. Java中使用Datagram与DatagramPacket类. DatagramSocket类利用UDP协议来实现客户与服务器的Socket. send()发送数据报. receive()接收数据

用udp实现广播通信

特点: 1.数据传输不用建立连接,所以不可靠(符合udp协议的特点) 2.数据的发送是面向整个子网的,任何一台在子网内的计算机都可以接收到相同的数据: 3.广播用于udp和原始IP,不能用于TCP 用途: 1.定位本地子网内的主机 前提是已知该主机位于本地子网,但是不知到他的单播地址.例如通过广播向所有子网内的主机的某端口发送数据报,如果主机有进程在该端口等待接收数据并回射数据,那么在recvfrom中会得到该主机的单播地址 2.减少分组流通 例如,多个客户主机与一个服务器主机通信的局域网中,广

27.Socket,TCP,UDP,HTTP基本通信原理

Socket,TCP,UDP,HTTP基本通信原理(摘自百度): TCP.UDP,HTTP 底层通信都是通过 socket 套接字实现 网络上不同的计算机,也可以通信,那么就得使用网络套接字(socket). socket就是在不同计算机之间进行通信的一个抽象. 他工作于TCP/IP协议中应用层和传输层之间的一个抽象  如图所示: 1.Socket 是对 TCP/IP 协议族的一种封装,是应用层与TCP/IP协议族通信的中间软件抽象层.从设计模式的角度看来,Socket其实就是一个门面模式,它把

recv原理、高阶版黏包解决方案、基于UDP的socket通信

recv原理.高阶版黏包解决方案.基于UDP的socket通信 recv原理 源码解释: Receive up to buffersize bytes from the socket. 接收来自socket缓冲区的字节数据, For the optional flags argument, see the Unix manual. 对于这些设置的参数,可以查看Unix手册. When no data is available, block untilat least one byte is av

Python中的端口协议之基于UDP协议的通信传输

UDP协议: 1.python中基于udp协议的客户端与服务端通信简单过程实现 2.udp协议的一些特点(与tcp协议的比较) ------------------------------------------------------------------------------------------------------------------------------------- 一.UDP协议:OSI七层协议中的传输协议的一种(另外一种tcp协议),他们都是一种端口协议 与TCP协