关于socket通信的问题,大虾来看看我的代码

maxi2003 2005-07-05 01:13:00
服务器端
-----------------------Server1.java---------------------------------------------------
import java.net.*;
import java.io.*;
import java.lang.*;

public class Server1
{
public static void main(String[] args) {
ServerSocket server = null;
Socket socket = null;

InputStream is = null;
OutputStream os = null;

DataInputStream dis = null;
DataOutputStream dos = null;
BufferedReader br = null;

try {
server = new ServerSocket(12000);
System.out.println("等待客户端的连接.......");
socket = server.accept();
System.out.println("客户端连接成功!!!");

is = socket.getInputStream();
os = socket.getOutputStream();

dis = new DataInputStream(is);
dos = new DataOutputStream(os);
br = new BufferedReader(new InputStreamReader(System.in));
while (true) {
String client = dis.readUTF();
System.out.println("客户端: " + client);
System.out.print("服务器: ");
String s = br.readLine();
dos.writeUTF(s);
System.out.println("****************************");
}
}
catch (Exception e) {}
}
}
客户端
-----------------------Client1.java------------------------------------------------------
import java.io.*;
import java.net.*;

public class Client1
{
public static void main(String[] args)
{
Socket socket=null;
InputStream is=null;
OutputStream os=null;
DataInputStream dis=null;
DataOutputStream dos=null;
BufferedReader br=null;
try
{
socket=new Socket("192.168.0.126",12000);
System.out.println("已连接到服务器.......");
is=socket.getInputStream();
os=socket.getOutputStream();
dis=new DataInputStream(is);
dos=new DataOutputStream(os);

br=new BufferedReader(new InputStreamReader(System.in));
while(true)
{
System.out.print("客户端: ");
System.out.println("请输入你要发送的信息:");
String s=br.readLine();
dos.writeUTF(s);
String server=dis.readUTF();
System.out.println("服务器: "+server);
System.out.println("***********************************");
}
}
catch(Exception e){}
}
}
调试通过,但是服务器端无响应,客户端中间的过程似乎跳过了,请高手帮我改下
...全文
119 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cshchina 2005-07-10
  • 打赏
  • 举报
回复
String client = dis.readUTF();
服务器端何时知道你客户端的输入是个尽头呢?
所以会死等
humanity 2005-07-10
  • 打赏
  • 举报
回复
Socket 用完后都应该 先关闭 输出流,再关闭输入流(socket 在输入流关闭之后就关闭了,请注意顺序)。
njwangchuan 2005-07-09
  • 打赏
  • 举报
回复
你的所有流最后都没有close()方法,很不好的习惯啊

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧