1,当你向另一个人联系时,需要一部手机,即Socket,对方的号码即端口,对方的即是服务端,需要即时接收来自外部的呼叫,需实时至少监听主机上一个端口的客户链接即accept();
//只是通俗说法。。。。。。
private
ServerSocket
sock
;
public
TimeSever(){
super
();
try
{
sock
=
new
ServerSocket(4415);
System.
out
.println(
"程序正在运行。。。。。。。"
);
}
catch
(IOException
ie
){
System.
out
.println(
"不能创建套接字!"
);
System. exit(1);
}
}
public
void
run(){
Socket
cilent
=
null
;
while
(
true
){
if
(
sock
==
null
)
return
;
try
{
cilent
=
sock
.accept();
BufferedOutputStream
bos
=
new
BufferedOutputStream(
cilent
.getOutputStream());
PrintWriter
os
=
new
PrintWriter(
bos
,
false
);
String
outLine
;
Date
now
=
new
Date();
//返回一个当前时间给客户端
os
.println(
now
);
os
.flush();
os
.close();
cilent
.close();
}
catch
(IOException
ie
){
System.
out
.println(
"不能连接到客户端"
);
System. exit(1);
}
}
}
public
static
void
main(String[]
args
) {
TimeSever
sever
=
new
TimeSever();
sever
.start();
}
端口:一般1~1024为Internet地址分配,不推荐使用
a)创建SocketServer实例,并将该端口号座位参数传递给构造函数
ServerSocket sev = new ServerSocket(8888);
b)然后使用accept()来监听该端口
sev.accept()
c)使用输入输出流来从客户端读取数据和数据写入;
2,测试服务器
使用win7自带的Telnet作为客户端
open localhost XXXX
//端口号
package
Internet;
import
java.io.*****;
import
java.net.****;
import
java.util.Date;
public
class
TimeSever
extends
Thread{
}
欢迎使用 Microsoft Telnet Client
Escape 字符为 'CTRL+]'
Microsoft Telnet> ?\
Microsoft Telnet> open localhost 4415
正在连接localhost...
Escape 字符为 'CTRL+]'
Microsoft Telnet> ?\
Microsoft Telnet> open localhost 4415
正在连接localhost...
Tue Sep 22 18:55:23 CST 2015
遗失对主机的连接。
按任意键继续...
遗失对主机的连接。
按任意键继续...