//Demonstrate Datagrams.
import java.net.*;
class WriteServer{
public static int serverPort = 666 ;
public static int clientPort = 999 ;
public static int buffer_size = 1024 ;
public static DatagramSocket ds ;
public static byte buffer[] = new byte[buffer_size];
public static void TheServer() throws Exception{
int pos = 0;
while(true){
int c = System.in.read();
switch(c){
case -1:
System.out.println("Server Quits.");
return;
case '\r':
break;
case '\n':
ds.send(new DatagramPacket(buffer,pos,InetAddress.getLocalHost(),clientPort));
pos = 0;
break;
default:
buffer[pos++] = (byte)c;
}
}
}
public static void TheClient() throws Exception{
while(true){
DatagramPacket p = new DatagramPacket (buffer,buffer.length);
ds.receive(p);
System.out.println(new String(p.getData(),0,p.getLength()));
}
}
public static void main(String[] args) throws Exception{
if(args.length == 1){
ds = new DatagramSocket(serverPort);
TheServer();
}else{
ds = new DatagramSocket(clientPort);
TheClient();
}
}
}
分享到:
相关推荐
通过这个类,我们可以创建一个socket,用于发送和接收数据报(datagrams)。数据报是UDP的基本传输单位,它们不保证顺序到达,也不保证每个数据报都能到达目的地。下面我们将深入解析`DatagramSocket`的主要功能: ...
服务器实现需要四个步骤:建立 DatagramSocket,接收数据报包,把数据报包内容写入一个临时文件,保存正式的文件。 首先,我们需要新建一个 UdpServer.java 类,在构造方法中构建界面。然后,我们需要写一个 start ...
这个类允许我们发送和接收数据报(datagrams),数据报是UDP通信的基本单位。创建`DatagramSocket`时,可以指定端口号,或者使用默认的随机分配端口。 ```java DatagramSocket socket = new DatagramSocket(port); ...
描述中的"A NONSTANDARD FOR TRANSMISSION OF IP DATAGRAMS OVER SERIAL LINES: SLIP"进一步强调了SLIP协议在串行线路上传输IP数据报的角色。SLIP是在早期互联网时代广泛使用的一种协议,它允许通过简单的串行连接,...
`UdpClient`允许我们发送和接收数据报(datagrams)。 ```csharp UdpClient udpClient = new UdpClient(); ``` 在我们的示例中,主机可能作为服务器(发送方)或客户端(接收方)。如果是服务器,我们需要绑定到一...
对于UDP通信,Boost.Asio提供了一种简洁且强大的方式来发送和接收数据报(datagrams)。 要开始一个UDP通信,首先需要包含必要的头文件: ```cpp #include ``` 接下来,创建一个`boost::asio::io_service`对象,...
1. **DatagramSocket**: Android中实现UDP通信的主要类是`DatagramSocket`,它代表一个UDP套接字,用于发送和接收数据报(datagrams)。开发者可以创建一个`DatagramSocket`实例,然后通过它来发送和接收数据。 2. ...
1. **DatagramSocket**:UDP通信的核心组件,它用于发送和接收数据报(datagrams)。在这个客户端中,DatagramSocket创建并配置以连接到服务器的特定端口。 2. **DatagramPacket**:封装要发送的数据或接收到的数据...
- **数据报(Datagrams)**: 使用数据报进行数据传输,适用于不需要保证顺序但追求效率的场景。 - **多播(Multicast)**: 支持多播通信,可以将数据发送到多个接收者。 - **Memory Management**: 为了有效管理和分配...
文档中的"Seamless Protection Switching of SMPTE ST 2022 IP Datagrams"指的是在不中断服务的情况下对SMPTE ST 2022 IP数据报进行保护切换,这是SMPTE ST 2022系列标准中的一部分。这个标准涉及的内容包括流媒体的...
DatagramSocket代表一个UDP套接字,可以用于发送和接收数据报(datagrams)。 3. 创建DatagramSocket: 创建DatagramSocket时,可以指定本地端口号,如果不指定,系统会自动分配一个。例如: ```java ...