给你一个简单的实现吧,注意一定要先运行MyServerjava
//MyCilentjava
import javaio;
import javanet;
import javaxswing;
import javaawt;
import javaawtevent;
public class MyClient extends JFrame implements ActionListener{
JTextField tf;
JTextArea tx;
JButton bt;
PrintWriter out;
public MyClient(){
tf=new JTextField(20);
tx=new JTextArea();
txsetLineWrap(true);
txsetWrapStyleWord(true);
JPanel pan=new JPanel();
JScrollPane jsp=new JScrollPane(tx);
add(jsp,"Center");
bt=new JButton("SEND");
btaddActionListener(this);
panadd(tf);
panadd(bt);
add(pan,"South");
thisaddWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
Systemexit(0);
}
});
setTitle("THE CLIENT");
setSize(400,300);
setVisible(true);
try{
Socket socket=new Socket("127001",1680);
out=new PrintWriter(socketgetOutputStream(),true);
InputStreamReader in = new InputStreamReader(socketgetInputStream());
BufferedReader sin=new BufferedReader(in);
String s;
while(true){
s=sinreadLine();
txappend("#Server Said#: "+s+"\n");
}
}catch(Exception e){
eprintStackTrace();
}
}
public void actionPerformed(ActionEvent e){
if(egetSource()==bt){
txappend("@Client Said@: "+tfgetText()+"\n");
outprintln(tfgetText());
tfsetText("");
}
}
public static void main(String[] args){
MyClient mct = new MyClient();
}
}
//MyServerjava
import javaio;
import javanet;
import javaxswing;
import javaawt;
import javaawtevent;
public class MyServer extends JFrame implements ActionListener{
JTextField tf;
JTextArea tx;
JButton bt;
JScrollPane jsp;
JPanel pan;
PrintWriter out;
public MyServer(){
tx=new JTextArea();
txsetLineWrap(true);
txsetWrapStyleWord(true);
jsp=new JScrollPane(tx);
tf=new JTextField(20);
bt=new JButton("SEND");
btaddActionListener(this);
pan=new JPanel();
panadd(tf);
panadd(bt);
add(pan,"South");
add(jsp,"Center");
thisaddWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
Systemexit(0);
}
});
setTitle("THE SERVER");
setSize(400,300);
setVisible(true);
try{
ServerSocket server = new ServerSocket(1680);
Socket socket = serveraccept();
InputStreamReader in = new InputStreamReader(socketgetInputStream());
BufferedReader sin=new BufferedReader(in);
out=new PrintWriter(socketgetOutputStream(),true);
while(true){
String s=sinreadLine();
txappend("@Client Said@: "+s+"\n");
}
}catch(Exception e){
eprintStackTrace();
}
}
public void actionPerformed(ActionEvent e){
if(egetSource()==bt){
String st = tfgetText();
txappend("#Server Said#: "+st+"\n");
outprintln(st);
tfsetText("");
}
}
public static void main(String[] args){
MyServer msr = new MyServer();
}
}
你需要在你的路由器上为你这个作为服务器的计算机做一个端口转发。
你客户端连接12366238这个IP地址,实际上是连接的是你路由器,但是你的路由器并不知道这个请求是给谁的,你必须在路由器上做端口转发,不然路由器不会把接收到的请求发给你的服务器
不知道你为什么要用这个 流 DataInputStream sin = new DataInputStream(Systemin);
你程序没反应是你读的时候一直阻塞着。你用 BufferedReader试试 肯定有反应。
微信小程序weappsocketio不稳定,断开不触发断开事件,可以在监听心跳事件设置回调处理,默认ping是自动发送,服务器会会pong,监听是否有接收到pong,一定时间没接收到且未触发socket断开事件,可以判定socket已断开连接,此时执行重连
一、搭建>
以上就是关于如何用java做一个聊天小程序 要求使用图形用户界面,可以实现一个聊天室中多人聊天,也可以两人私聊,全部的内容,包括:如何用java做一个聊天小程序 要求使用图形用户界面,可以实现一个聊天室中多人聊天,也可以两人私聊,、C++Socket的聊天程序,在本机上能连上,远程机器就连不上了、java聊天小程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)