先看下效果图,一端运行在远程服务器,一端在本机电脑上运行,在局域网内两端可正常通信,由于我学校网络是局域网,所以外网ip接收得到消息,反之外网发消息过来本机收不到。不是局域网的同学理论上可以直接通信。
思路是利用Socket来收发数据。具体可看代码。
代码分为两部分,一部分为聊天窗口的绘制,一部分为事件和通信的实现,这里一起贴了出来:
import java.awt.Button;
import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.util.Calendar;
import javax.swing.JOptionPane;
public class Chat {
public static void main(String[] args) {
new MyFrame();
new MyEvent();
Thread thread = new Thread(new MyRecevier());
thread.start();
}
}
class MySend {
public MySend() throws Exception {
DatagramSocket dSocket = new DatagramSocket(10000);
Calendar c = Calendar.getInstance();
by