当前位置: 技术问答>java相关
socket实现Client 与 Server 的通信?
来源: 互联网 发布时间:2015-08-07
本文导语: 别告诉我代码,我知道的~~ 我只想知道具体是怎么实现的!! 比如说,服务器端怎样设置,等等 反正谁能让我 调试成功,我就给分,给50分 | 这种问题你真应该好好看看书,问的话没有意...
别告诉我代码,我知道的~~
我只想知道具体是怎么实现的!!
比如说,服务器端怎样设置,等等
反正谁能让我 调试成功,我就给分,给50分
我只想知道具体是怎么实现的!!
比如说,服务器端怎样设置,等等
反正谁能让我 调试成功,我就给分,给50分
|
这种问题你真应该好好看看书,问的话没有意义的。
在一个JSP的主页空间里怎么运行server端?
你的serverSocket应该是在一个线程中处理。在jsp中调用这个类,并启动这个线程即可。
不过,jsp是客户端访问才能激活。所以最好把这个启动过程放在一个servelet中。把该servelet设置成自动启动(就是启动web服务的时候,该servelet也启动,怎么称呼记不得了,一般的书都会讲到怎么设置的)。
在一个JSP的主页空间里怎么运行server端?
你的serverSocket应该是在一个线程中处理。在jsp中调用这个类,并启动这个线程即可。
不过,jsp是客户端访问才能激活。所以最好把这个启动过程放在一个servelet中。把该servelet设置成自动启动(就是启动web服务的时候,该servelet也启动,怎么称呼记不得了,一般的书都会讲到怎么设置的)。
|
服务器端使用ServerSocket监听请求,客户端使用Socket连接服务器端,连接成功后可以按照协议进行通信了
而服务器端再收到一个连接请求之后就主动建立一个Socket和客户端连接,这样保证服务器端可以继续监听其他的客户端请求。
而服务器端再收到一个连接请求之后就主动建立一个Socket和客户端连接,这样保证服务器端可以继续监听其他的客户端请求。
|
首先不管你的客户端在那里,你需要你的服务器端开放一个端口,然后利用ServerSocket进行监听,以便随时相应客户端的连接。当有客户端连接的时候,会返回一个Socket,从这个Socket里读取流进行你想要的操作。
try
{
ServerSocket ss = new ServerSocket(1025);
for(;;)
{
Socket cilent = ss.accept();
BufferReader in = new BufferedReader(new InputStreamReader (client.getInputStream()));
//////////////////
// Do
//////////////////
}
}
客户端用Socket直接连接就可以了
try
{
Socket s = new Socket("http://127.0.0.1",1025);
////////////
// Do
/////////////////////////////////
}
try
{
ServerSocket ss = new ServerSocket(1025);
for(;;)
{
Socket cilent = ss.accept();
BufferReader in = new BufferedReader(new InputStreamReader (client.getInputStream()));
//////////////////
// Do
//////////////////
}
}
客户端用Socket直接连接就可以了
try
{
Socket s = new Socket("http://127.0.0.1",1025);
////////////
// Do
/////////////////////////////////
}
|
去买一本JAVA的书吧。一般都会讲到Socket通讯的,这样边看书边作更快一点。
|
不会吧...
例如你编译后的类文件叫'TestServer.class',那你到它的路径下运行:
java TestServer
这样server端就启动了
例如你编译后的类文件叫'TestServer.class',那你到它的路径下运行:
java TestServer
这样server端就启动了
|
你应该先让server端程序运行,因为它在listen端口是否有被请求;
然后,你在运行客户端程序,建议你在2台机器上;
这样就好啦;
server端 client端
SOCKEt SOCKET
bind bind
listen connect
send/receive data send/receive data
然后,你在运行客户端程序,建议你在2台机器上;
这样就好啦;
server端 client端
SOCKEt SOCKET
bind bind
listen connect
send/receive data send/receive data
|
你往ServerSocket上帮定了一个已占用的地址端口,重新换一个试试。
|
如果你的serverSocket连接上了不显示任何运行信息,当然是像你说的那样了,
比如
server=new ServerSocket(8888);
while(true){
client=server.accept();
client.close();
//System.out.println("client connected");
}
像这样接受到客户连接马上上断开,什么别的事也不干,可不只是闪呀闪的。
如果你在连接后加入System.out.println("client connected");
服务器屏幕在客户端连接后就会提示:client connected!
比如
server=new ServerSocket(8888);
while(true){
client=server.accept();
client.close();
//System.out.println("client connected");
}
像这样接受到客户连接马上上断开,什么别的事也不干,可不只是闪呀闪的。
如果你在连接后加入System.out.println("client connected");
服务器屏幕在客户端连接后就会提示:client connected!
|
serversocket在服务器固定的端口接受请求
当需要服务的时候 socket向服务器的固定端口发出请求
serversocket接收到请求的时候,向socket返回请求
然后就没了
当需要服务的时候 socket向服务器的固定端口发出请求
serversocket接收到请求的时候,向socket返回请求
然后就没了