`
hsyzijvaa
  • 浏览: 111780 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

java UDP 通信

    博客分类:
  • java
阅读更多
    那位高手可以帮小弟改一下以下程序,只实现传送简单的数据包,谢谢!

import java.net.*;
import java.io.*;
import java.awt.*;


class udpcommunicationserver extends frame {
private label label1, label2;
private panel panel1, panel2;
private textfield textfield;
private string name, name1;
private textarea textarea;
private datagramsocket sendsocket, receivesocket;
private datagrampacket sendpacket, receivepacket;

public udpcommunicationserver() {
super("通信控制台:");
panel1 = new panel();
panel1.setlayout(new borderlayout());
label1 = new label("通话记录");
textarea = new textarea(10, 20);
textarea.settext("欢迎你!");
panel1.add("north", label1);
panel1.add("center", textarea);
add("north", panel1);
panel2 = new panel();
panel2.setlayout(new borderlayout());
label2 = new label("发言:");
panel2.add("center", label2);
textfield = new textfield(20);
panel2.add("south", textfield);
add("center", panel2);
setvisible(true);
try {
sendsocket = new datagramsocket();
receivesocket = new datagramsocket(5000);
} catch (socketexception e) {
e.printstacktrace();
system.exit(1);
}
}

public void waitforpacket() {
while (true) {
try {
byte[] buf = new byte[100];
receivepacket = new datagrampacket(buf, buf.length);
receivesocket.receive(receivepacket);
name = receivepacket.getaddress().tostring();
if (name1 != name) {
textarea.append("\n来自主机:" + name + "\n端口:"
+ receivepacket.getport());
}
textarea.append("\n客户:");
byte[] data = receivepacket.getdata();
string receivedstring = new string(data);
textarea.append(receivedstring);
name1 = name;
} catch (ioexception e) {
textarea.append("\n网络通信出现错误,问题在" + e.tostring());
}
}
}

public void processevent(awtevent e) {
if (e.getid() == event.window_destroy) {
setvisible(false);
dispose();
system.exit(0);
}
super.processevent(e);
}

public boolean action(event e, object o) {
try {
textarea.append("\n服务器:");
string string = o.tostring();
textarea.append(string);
byte[] databyte = new byte[100];
databyte = string.getbytes();
sendpacket = new datagrampacket(databyte, string.length(),
inetaddress.getbyname(name), 5001);
sendsocket.send(sendpacket);
} catch (ioexception ioe) {
textarea.append("网络通信出现错误,问题在" + ioe.tostring());
}
return true;
}
}

public class udpserver {
public static void main(string[] args) {
udpcommunicationserver cs = new udpcommunicationserver();
// cs.setvisible(true);
cs.waitforpacket();

}
}


import java.net.*;
import java.io.*;
import java.awt.*;
import java.applet.*;
public final class client extends applet{
private label label1,label2;
private panel panel1,panel2;
private textfield textfield;
private textarea textarea;
private datagramsocket sendsocket,receivesocket;
private datagrampacket sendpacket,receivepacket;
public void init(){
setbackground(color.gray);
setlayout(new borderlayout());
panel1=new panel();
panel1.setlayout(new borderlayout());
label1=new label("通话记录");
textarea=new textarea(10,20);
textarea.settext("欢迎你!");
panel1.add("north",label1);
panel1.add("center",textarea);
add("north",panel1);
label2=new label("发言:");
panel2=new panel();
panel2.add("center",label2);
textfield=new textfield(20);
textfield.settext("");
panel2.add("south",textfield);
add("center",panel2);
setvisible(true);
}
public void start(){
waitforpackets();
}
public void waitforpackets(){
try{
sendsocket=new datagramsocket();
receivesocket=new datagramsocket(5001);
}catch(socketexception e){
textarea.append("不能打开数据报socket,或数据报socket无法与指定端口连接!");
}
while(true){
try{
byte []buf=new byte[100];
receivepacket=new datagrampacket(buf,buf.length);
receivesocket.receive(receivepacket);
textarea.append("\n服务器:");
byte[]data=receivepacket.getdata();
string receivedstring=new string(data);
textarea.append(receivedstring);
}catch (ioexception e){
textarea.append("\n网络通信出现错误,问题在"+e.tostring());
}
}
}
public boolean action(event e,object o){
try{
textarea.append("\n客户端:");
string string=o.tostring();
textarea.append(string);
byte[]databyte=new byte[100];
databyte=string.getbytes();
sendpacket=new datagrampacket(
databyte,string.length(),inetaddress.getbyname("localhost"),5000);
sendsocket.send(sendpacket);
}catch(ioexception ioe){
textarea.append("网络通信出现错误,问题在"+ioe.tostring());
}
return true;
}
}
 
0
3
分享到:
评论

相关推荐

    UDP聊天&文件发送.rar_JAVA socket编程_java_java udp_java udp通信_套接字通信

    以下将详细介绍相关的Java UDP通信和套接字通信知识点。 1. **Java UDP通信基础** - UDP是无连接的,即在发送数据前无需建立连接,因此它的速度较快,但不保证数据的顺序和可靠性。 - Java中的`java.net....

    java UDP通信

    Java UDP通信是网络编程中的一个重要部分,它基于用户数据报协议(User Datagram Protocol),是一种无连接的、不可靠的传输层协议。UDP不提供数据包的顺序保证、错误检查或重传机制,而是以较小的开销换取较高的...

    Java udp通信编程client端

    Java udp通信编程client端

    Java udp通信编程server端

    Java udp通信编程server端程序

    UDP通信Java UDP通信

    Java实现UDP通信,按照固定的帧格式发送数据和接收数据,对数据的格式解码处理。实现了显示同设备的不同工作模式的显示。发送不同的命令数据帧。 Java实现UDP通信,按照固定的帧格式发送数据和接收数据,对数据的...

    SpringMVC的Socket实现+Java Tomcat websocket实现+Java Socket通信实现 +Java UDP通信实现

    SpringMVC的Socket实现+Java Tomcat websocket实现+Java Socket通信实现 +Java UDP通信实现。websocket_study.rar 为springMVC版本的socket实现 websocket02.rar 里面包含tomcat的websocket实现+java socket双向通信...

    Java udp通信

    Java UDP通信是网络编程中的一个重要概念,主要涉及的是使用Java的Socket编程接口中的DatagramSocket类来实现用户数据报协议(UDP)的通信。UDP是一种无连接的、不可靠的传输协议,它不保证数据包的顺序到达或重传...

    java Udp 收发结构体实例 Socket编程

    在Java中,我们通常使用`java.net.DatagramSocket`类来实现UDP通信。 1. **UDP Socket编程基础**: Java中的`DatagramSocket`类用于创建UDP套接字,它允许我们发送和接收数据报包。`DatagramPacket`类则封装了数据...

    android 和java实现UDP通信

    本教程将详细介绍如何在Android和Java中实现UDP通信。 首先,理解UDP的特点至关重要。UDP不提供连接建立、数据确认和流量控制等机制,因此它的开销较小,但同时也意味着数据可能会丢失、重复或乱序。在实现Android ...

    java udp 多线程实现简单的通信

    在Java中,我们可以通过`java.net.DatagramSocket`类来实现UDP通信。多线程技术则能帮助我们在程序中同时处理多个任务,提高程序的并发性能。在这个"java udp 多线程实现简单的通信"的项目中,我们可能看到了如何...

    java UDP通信客户端与服务器端实例分析

    Java UDP 通信客户端与服务器端实例分析 Java UDP 通信客户端与服务器端实例分析是介绍 Java 语言基于 UDP 协议的客户端与服务器端的实现技巧和相关操作注意事项。UDP 协议是一种无连接的网络协议,它不像 TCP 协议...

    java简单UDP通信代码详解

    Java UDP通信是网络编程中的一个重要部分,它基于无连接的用户数据报协议(User Datagram Protocol),相较于TCP,UDP提供了一种轻量级、快速且不可靠的数据传输方式。本资料主要针对初学者,通过简单的代码示例来...

    UDP.rar_UDP_UDP 协议_UDP 通信协议_java udp

    下面是一个简单的Java UDP通信示例: ```java // 服务器端 public class UDPServer { public static void main(String[] args) throws Exception { DatagramSocket serverSocket = new DatagramSocket(12345); ...

    java UDP通讯实例

    在这个Java UDP通信实例中,我们有两个关键文件:`ClientUDP.java` 和 `ServerUDP.java`,它们分别代表UDP通信的客户端和服务端。 ### 客户端 (`ClientUDP.java`) 客户端通常负责发起通信请求,发送数据到服务器。...

    java读写Modbus TCP UDP数据,java与modbus通信,Modbus TCP UDP与java通信 全开源

    java读写Modbus TCP UDP数据,java与modbus通信,Modbus TCP UDP与java通信 全开源 这是一个能正常通过Modbus TCP UDP协议读写项目 请放心下载,完全开源,在多个项目中已经使用

    PC端的UDP通信程序

    本项目是用Java语言编写的一个PC端UDP通信程序,设计用于与安卓设备进行数据交换,特别适用于实时性要求较高的应用,如在线游戏、视频流媒体等。 【描述】中的关键点在于程序是在Eclipse集成开发环境中运行的,这...

    java udp 通讯,java中实现UDP通讯

    Java UDP通信是网络编程中的一个重要部分,UDP(User Datagram Protocol)是一种无连接的、不可靠的传输协议,常用于实时数据传输或者对数据完整性要求不高的场景。在Java中,我们通常使用`java.net`包中的`...

    java_UDPSocket_codes.rar_ServerThread_java udp程序

    在Java中,我们使用`java.net.DatagramSocket`类来实现UDP通信。这个压缩包包含的是关于Java多线程UDP服务器程序(ServerThread)和客户端程序的代码示例以及相关的多线程Socket编程资料。 1. **UDP通信基础**: ...

    udp-chat.rar_UDP聊天室_java udp chat_java udp 聊天_udp chat

    Java中实现UDP通信主要依赖于`java.net.DatagramSocket`类。这个类提供了发送和接收UDP数据报文的功能。客户端创建`DatagramSocket`实例,然后可以通过`send()`方法发送`DatagramPacket`,通过`receive()`方法接收...

    Java实现udp通信协议

    以上就是关于“Java实现UDP通信协议”的关键知识点。理解并掌握这些内容,可以帮助开发者实现高效的UDP通信应用,并能处理相关的数据转换、日志记录和异常情况。通过实际项目练习,可以加深对这些概念的理解,并提升...

Global site tag (gtag.js) - Google Analytics