博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
有图形界面的聊天程序
阅读量:6197 次
发布时间:2019-06-21

本文共 3575 字,大约阅读时间需要 11 分钟。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package 
socket;
import 
java.awt.event.ActionEvent;
import 
java.awt.event.ActionListener;
import 
java.io.DataInputStream;
import 
java.io.DataOutputStream;
import 
java.io.IOException;
import 
java.net.ServerSocket;
import 
java.net.Socket;
import 
java.util.Scanner;
  
import 
javax.swing.JButton;
import 
javax.swing.JFrame;
import 
javax.swing.JTextArea;
import 
javax.swing.JTextField;
   
public 
class 
GUIServer {
   
    
public 
static 
void 
main(String[] args) 
throws 
Exception {
           
        
JFrame f = 
new 
JFrame();
        
f.setTitle(
"server"
);
           
        
f.setSize(
400
300
);
        
f.setLocation(
100
200
);
        
f.setLayout(
null
);
           
        
JButton b = 
new 
JButton(
"send"
);
        
b.setBounds(
10
10
80
30
);
        
f.add(b);
          
        
final 
JTextField tf = 
new 
JTextField();
        
tf.setBounds(
10
110
80
30
);
        
f.add(tf);
           
        
final 
JTextArea ta = 
new 
JTextArea();
        
ta.setBounds(
110
,
10
200
300
);
        
f.add(ta);
           
        
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
f.setVisible(
true
);
 
        
ServerSocket ss = 
new 
ServerSocket(
8888
);
         
        
System.out.println(
"listenning on port:8888"
);
        
final 
Socket s =  ss.accept();       
        
new 
Thread() {
            
public 
void 
run() {
                
while 
(
true
) {
                    
try 
{
                        
DataInputStream dis = 
new 
DataInputStream(
                                
s.getInputStream());
                        
String text = dis.readUTF();
                        
ta.append(text+
"\r\n"
);
                    
catch 
(Exception e) {
                        
e.printStackTrace();
                    
}
                
}
  
            
}
        
}.start();
          
        
b.addActionListener(
new 
ActionListener() {
              
            
@Override
            
public 
void 
actionPerformed(ActionEvent e) {
                  
                
String text = tf.getText();
                
ta.append(text+
"\r\n"
);
                  
                
try 
{
                    
DataOutputStream dos = 
new 
DataOutputStream(
                            
s.getOutputStream());
                    
dos.writeUTF(text);
                
catch 
(Exception ex) {
                    
ex.printStackTrace();
                
}
            
}
        
});
          
    
}
}

 

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package 
socket;
 
import 
java.awt.event.ActionEvent;
import 
java.awt.event.ActionListener;
import 
java.io.DataInputStream;
import 
java.io.DataOutputStream;
import 
java.io.IOException;
import 
java.net.Socket;
import 
java.net.UnknownHostException;
  
import 
javax.swing.JButton;
import 
javax.swing.JFrame;
import 
javax.swing.JTextArea;
import 
javax.swing.JTextField;
   
public 
class 
GUIClient {
   
    
public 
static 
void 
main(String[] args) 
throws 
Exception {
           
        
JFrame f = 
new 
JFrame();
        
f.setTitle(
"client"
);
           
        
f.setSize(
400
300
);
        
f.setLocation(
600
200
);
        
f.setLayout(
null
);
           
        
JButton b = 
new 
JButton(
"send"
);
        
b.setBounds(
10
10
80
30
);
        
f.add(b);
          
        
final 
JTextField tf = 
new 
JTextField();
        
tf.setBounds(
10
110
80
30
);
        
f.add(tf);
           
        
final 
JTextArea ta = 
new 
JTextArea();
        
ta.setBounds(
110
,
10
200
300
);
        
f.add(ta);
           
        
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
f.setVisible(
true
);
           
        
final 
Socket s = 
new 
Socket(
"127.0.0.1"
8888
);
          
        
new 
Thread() {
            
public 
void 
run() {
                
while 
(
true
) {
                    
try 
{
                        
DataInputStream dis = 
new 
DataInputStream(
                                
s.getInputStream());
                        
String text = dis.readUTF();
                        
ta.append(text+
"\r\n"
);
                    
catch 
(Exception e) {
                        
e.printStackTrace();
                    
}
                
}
  
            
}
        
}.start();
          
        
b.addActionListener(
new 
ActionListener() {
              
            
@Override
            
public 
void 
actionPerformed(ActionEvent e) {
                  
                
String text = tf.getText();
                
ta.append(text+
"\r\n"
);
                  
                
try 
{
                    
DataOutputStream dos = 
new 
DataOutputStream(
                            
s.getOutputStream());
                    
dos.writeUTF(text);
                
catch 
(Exception ex) {
                    
ex.printStackTrace();
                
}
            
}
        
});
          
    
}
}

 

转载于:https://www.cnblogs.com/chinaifae/p/10195125.html

你可能感兴趣的文章
angularjs过滤器(一)------禁止转载------
查看>>
图表(Chart & Graph)你真的用对了吗?
查看>>
自定义实现复选框
查看>>
4月25上午及补交4月24号作业
查看>>
java 关键字this super
查看>>
测试代码的方法
查看>>
Unsupported major.minor version 52.0
查看>>
深入理解Java:注解(Annotation)自定义注解入门
查看>>
跨线程修改UI控件
查看>>
网站建设:强烈推荐使用第三方云存储
查看>>
正则表达式
查看>>
第二阶段
查看>>
利用Filter实现数据的压缩回写
查看>>
从一堆数中随机取出一些值的方法
查看>>
常用数据库2 sqlite及SQL注入
查看>>
709. To Lower Case
查看>>
个人GIT使用
查看>>
Java中如何查看一个类依赖的包
查看>>
如何通过WallpaperManager(壁纸管理器)设置与修改壁纸?
查看>>
数据库与表的创建
查看>>