当前位置:首页 » 编程语言 » javasocket读取

javasocket读取

发布时间: 2025-01-19 16:59:48

‘壹’ java ServerSocket和Socket通讯代码无法读取信息

两个问题,造成阻塞
1)readLine()读到换行是才返回,所以info=“前来报到/r/n”
2)server端的while循环导致阻塞,因为他一直在读,但是client端就写了一次,所以server一直在等在,现在把两个while改为if,就可以
你先试下

建议用printwriter

‘贰’ java编程中,Socket通信是怎么实现的

java编程对于Socket之间的通信过程如下:

服务端往Socket的输出流里面写东西,客户端就可以通过Socket的输入流读取对应的内容。Socket与Socket之间是双向连通的,所以客户端也可以往对应的Socket输出流里面写东西,然后服务端对应的Socket的输入流就可以读出对应的内容。下面来看一些服务端与客户端通信的例子:

publicclassServer{

publicstaticvoidmain(Stringargs[])throwsIOException{
//为了简单起见,所有的异常信息都往外抛
intport=8899;
//定义一个ServerSocket监听在端口8899上
ServerSocketserver=newServerSocket(port);
//server尝试接收其他Socket的连接请求,server的accept方法是阻塞式的
Socketsocket=server.accept();
//跟客户端建立好连接之后,我们就可以获取socket的InputStream,并从中读取客户端发过来的信息了。
Readerreader=newInputStreamReader(socket.getInputStream());
charchars[]=newchar[64];
intlen;
StringBuildersb=newStringBuilder();
while((len=reader.read(chars))!=-1){
sb.append(newString(chars,0,len));
}
System.out.println("fromclient:"+sb);
reader.close();
socket.close();
server.close();
}

}
客户端代码
Java代码publicclassClient{

publicstaticvoidmain(Stringargs[])throwsException{
//为了简单起见,所有的异常都直接往外抛
Stringhost="127.0.0.1";//要连接的服务端IP地址
intport=8899;//要连接的服务端对应的监听端口
//与服务端建立连接
Socketclient=newSocket(host,port);
//建立连接后就可以往服务端写数据了
Writerwriter=newOutputStreamWriter(client.getOutputStream());
writer.write("HelloServer.");
writer.flush();//写完后要记得flush
writer.close();
client.close();
}

}
热点内容
matlab粒子群优化算法 发布:2025-03-07 08:13:49 浏览:247
编译原理翻译 发布:2025-03-07 08:08:01 浏览:590
安卓光遇测试服为什么服务器错误 发布:2025-03-07 08:05:53 浏览:548
火狐缓存文件夹 发布:2025-03-07 08:05:51 浏览:110
代码编程库 发布:2025-03-07 08:05:09 浏览:179
js远程脚本 发布:2025-03-07 07:54:31 浏览:2
linux修改用户目录 发布:2025-03-07 07:46:24 浏览:457
六个文件夹名称 发布:2025-03-07 07:45:28 浏览:850
华威随身网络的密码是什么 发布:2025-03-07 07:43:07 浏览:667
我的世界服务器生存怎么改创造 发布:2025-03-07 07:39:53 浏览:790