我想做一个java基于的udp的通信,udp不是面向连接,但是我想自己手工对它进行校验和,可以用crc校验,有谁做过的,给我点帮助吧,谢谢
------解决方案--------------------
这个程序试一试:没有crc校验部分,你得的自己添加
不过你可以模拟crc校验,就是每次发送信息增加某些值,接收信息之前进行确认,再返回(类似TCP连接的三次握手)
我建议做模拟crc之前,先做模拟奇偶校验,主要先熟悉API文档中的Byte类和String类的操作技巧和编码问题
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.*;
import java.util.regex.*;;
public class PointToPointUDPChat {
Frame f = new Frame("聊天室");
Label lbRemoteIP = new Label("目标IP");// 对方IP
Label lbRemotePort = new Label("目标端口");
Label lbLocalSendPort = new Label("本地发送端口");
Label lbLocalReceivePort = new Label("本地接收端口");
TextField tfRemoteIP = new TextField(15);// 要发送数据的目标IP
TextField tfRemotePort = new TextField(15);// 要发送数据的目标端口
TextField tfLocalSendPort = new TextField(15);// 使用此端口发送数据
TextField tfLocalReceivePort = new TextField(15);// 使用此端口发送数据
String remoteIP = null;
int remotePort = 0;
int localSendPort = 0;
int localReceivePort = 0;
TextArea allChatContent = new TextArea();
TextField sendChatContent = new TextField(20);
Button connect = new Button("连接");
Button disConnect = new Button("断开");
Button bt = new Button("发送");
Thread receiveThread = null;// 利用start和stop控制是否接收消息
public PointToPointUDPChat() {
initFrame();
}
public static void main(String args[]) {
new PointToPointUDPChat();
}
// 外观布局,添加事件响应
public void initFrame() {// //////
f.setSize(400, 500);// 设置容器的大小
f.setLayout(new BorderLayout());
Panel p = new Panel();
Panel p2 = new Panel();
// 添加组件,布置布局
p.setLayout(new GridLayout(5, 5));
p.add(lbRemoteIP);
p.add(tfRemoteIP);
p.add(lbRemotePort);
p.add(tfRemotePort);
p.add(lbLocalSendPort);
p.add(tfLocalSendPort);
p.add(lbLocalReceivePort);
p.add(tfLocalReceivePort);
p.add(connect);
p.add(disConnect);
f.add("North", p);
connect.addActionListener(new ActionListener() {// 连接按钮事件
public void actionPerformed(ActionEvent e) {
try {