在Eclipse当中创建一个Java项目TestMyServerSocket
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
|
package
com.yeqc.testmyserversocket.main;
import
java.io.IOException;
import
java.net.ServerSocket;
import
java.net.Socket;
import
javax.swing.JOptionPane;
public
class
MyserverSocket {
public
static
void
main(String[] args) {
//1-65535
try
{
ServerSocket serverSocket =
new
ServerSocket(
54321
);
// serverSocket.accept();//调用accept()侦听客户端的连接
/**
*accept()是一个阻塞的方法,所以在这里它会阻塞当前的线程
*既然它会阻塞当前的main线程,在这里创建的原因是在这里只做演示
*这样写其实并不严谨,在以后会以正确的方法把它写出来
*
*在当前的ServerSocket已经在监听本机的12345这个端口了
*当这个端口它的accept()被调用之后,也就是说有客户端连接到了这个端口
*/
Socket socket = serverSocket.accept();
//建立连接
/**
* 一旦accept()被执行,并且socket被赋值了,这就说明已经有客户端连接了
*/
JOptionPane.showMessageDialog(
null
,
"有客户端连接到了本机的12345端口"
);
//弹出提示框
}
catch
(IOException e) {
e.printStackTrace();
}
}
}
|
此时可以看到当前的程序是在运行并且没有停止,而且没有输出任何提示框,所以可以看出当前的程序是被阻塞在了语句:serverSocket.accept();
然后打开浏览器,在地址栏中输入127.0.0.1:54321(127.0.0.1代表读取本机的地址,冒号后面代表要读取的端口),可以看到弹出的提示框。
本文转自yeleven 51CTO博客,原文链接:http://blog.51cto.com/11317783/1769508