【Java学习笔记】UDP客户端/服务器端

简介:

客户端:

import java.net.DatagramPacket; 
import java.net.DatagramSocket; 
import java.net.InetAddress; 
import java.net.SocketException; 
import java.net.UnknownHostException; 
import java.io.IOException; 
public class UdpClient { 
    public static void main(String arg[]) { 
        String outstr; 
        if(arg.length >= 1) 
            outstr = arg[0]; 
        else 
            outstr = "count"; 
        try { 
            DatagramSocket socket = new DatagramSocket(); 
            byte outblock[] = outstr.getBytes(); 
            InetAddress address = InetAddress.getLocalHost(); 
            DatagramPacket outpacket = 
                    new DatagramPacket(outblock,outblock.length,address,8765); 
            socket.send(outpacket); 
            System.out.println("Client sent: " + outstr); 
            byte inblock[] = new byte[256]; 
            DatagramPacket inpacket = 
                    new DatagramPacket(inblock,inblock.length); 
            socket.receive(inpacket); 
            String instr = new String(inpacket.getData(),0,inpacket.getLength()); 
            System.out.println("Client got: " + instr); 
            socket.close(); 
        } catch(SocketException e) { 
            System.out.println(e); 
        } catch(UnknownHostException e) { 
            System.out.println(e); 
        } catch(IOException e) { 
            System.out.println(e); 
        } 
    } 
}

服务器端:

import java.net.DatagramSocket; 
import java.net.DatagramPacket; 
import java.net.InetAddress; 
import java.io.IOException; 
import java.util.Date; 
public class UdpServer { 
    public static void main(String arg[]) { 
        DatagramSocket socket = null; 
        int count = 0; 
        try { 
            socket = new DatagramSocket(8765); 
        } catch(IOException e) { 
            System.out.println(e); 
        } 
        while(true) { 
            try { 
                byte block[] = new byte[256]; 
                DatagramPacket inpacket 
                        = new DatagramPacket(block,block.length); 
socket.receive(inpacket); 
                int length = inpacket.getLength(); 
                System.out.println("Length of the data received: " + length); 
   byte inblock[] = inpacket.getData(); 
                String inmsg = new String(inblock,0,length); 
                System.out.println("Server got: " + inmsg); 
                count++; 
                String outmsg; 
                if(inmsg.equals("date")) { 
                    Date date = new Date(); 
                    outmsg = date.toString(); 
                } else if(inmsg.equals("halt")) { 
                    socket.close(); 
                    return; 
                } else if(inmsg.equals("count")) { 
                    outmsg = "Number of messages: " + count; 
                } else { 
                    outmsg = "What is " + inmsg + "?"; 
                } 
                byte outblock[] = outmsg.getBytes(); 
                InetAddress returnaddress = inpacket.getAddress(); 
                int returnport = inpacket.getPort(); 
                DatagramPacket outpacket = new DatagramPacket( 
                        outblock,outblock.length,returnaddress,returnport); 
                socket.send(outpacket); 
            } catch (IOException e) { 
                e.printStackTrace(); 
            } 
        } 
    } 
}

 




本文转自gnuhpc博客园博客,原文链接:http://www.cnblogs.com/gnuhpc/archive/2012/12/17/2822298.html,如需转载请自行联系原作者

相关文章
|
1月前
|
前端开发 Java 数据安全/隐私保护
Java学习—GUI编程学习笔记
Java学习—GUI编程学习笔记
|
2月前
|
NoSQL 安全 Java
Redis基础篇:Redis的Java客户端
Redis基础篇:Redis的Java客户端
|
2月前
|
网络协议 Java API
基于UDP/TCP实现客户端服务器的网络通信程序
基于UDP/TCP实现客户端服务器的网络通信程序
|
2月前
|
存储 缓存 安全
《java核心技术36讲》学习笔记-------杨晓峰(极客时间)
《java核心技术36讲》学习笔记-------杨晓峰(极客时间)
34 0
|
4天前
|
自然语言处理 Java 编译器
【JavaEE初阶】 UDP服务器与客户端的搭建
【JavaEE初阶】 UDP服务器与客户端的搭建
|
22天前
|
安全 Java Go
springboot+netty化身Udp服务端,go化身客户端模拟设备实现指令联动
springboot+netty化身Udp服务端,go化身客户端模拟设备实现指令联动
31 0
|
1月前
|
JSON Java API
Java 编程问题:十三、HTTP 客户端和 WebSocket API
Java 编程问题:十三、HTTP 客户端和 WebSocket API
63 0
|
2月前
|
数据采集 缓存 分布式计算
java并发编程实践——王宝令(极客时间)学习笔记
java并发编程实践——王宝令(极客时间)学习笔记
24 0
|
2月前
|
Java 数据库连接 数据库
Java大数据开发工程师__Spring学习笔记(待更新)
Java大数据开发工程师__Spring学习笔记(待更新)
22 1
|
2月前
|
Java API Apache
ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
15 0

热门文章

最新文章

相关产品

  • 云迁移中心