黑马程序员技术交流社区
标题:
网络编程客服端服务端问题?求解!
[打印本页]
作者:
刘元霄
时间:
2012-3-24 02:05
标题:
网络编程客服端服务端问题?求解!
class Tcpkfd
{
public static void main(String[] args) throws Exception
{
//创建客户端,指定目的主机和端口。
Socket sk = new Socket("192.168.0.3",8888);
//为了发送数据,应该用socket流中的输出流。
OutputStream out = sk.getOutputStream();
out.write("哥们来啦!".getBytes());
sk.close();
}
}
//创建一个服务端
class Tcpfwd
{
public static void main(String[] args) throws Exception
{
//建立服务端,并监听一个端口。
ServerSocket ss = new ServerSocket(8888);
//通过accept方法获取连接过来的客服端对象。
Socket sk = ss.accept();
String ip = sk.getInetAddress().getHostAddress();
System.out.println(ip+"--连接成功");
//获取客户端发送过来的数据,那么要使用客户端对象的读取流来读取数据。
InputStream in = sk.getInputStream();
byte[] but = new byte[1024];
int len = in.read(but);
String data = new String(but,0,len);
System.out.println(data);
sk.close();
ss.close();
}
}
编译时通过的, 运行也没有问题, 就是服务端运行后 一会时间就自动关闭。
D:\JAVAX\day13>java Tcpfwd
127.0.0.1--连接成功
有时候我客服端还没开启 它就这样了!
192.168.0.3--连接成功
哥们来啦!
如果客户端点的快的话就没有问题
这是为什么 求解!!!!!
作者:
刘元霄
时间:
2012-3-24 02:06
客户端运行的快的话他就会没有问题 可是不能等有时候服务端刚刚运行 就127.0.0.1--连接成功
表示很纠结!!
作者:
亚男
时间:
2012-3-24 03:09
我觉得应该把到数最后一句话去掉,,因为你ss.close()后,整个服务端的对象就没了,对象都没了,程序怎么可能不结束呢?建议你取消后在试,我也很想知道结果,有答案别忘回贴!
作者:
刘元霄
时间:
2012-3-24 05:23
亚男 发表于 2012-3-24 03:09
我觉得应该把到数最后一句话去掉,,因为你ss.close()后,整个服务端的对象就没了,对象都没了,程序怎么可能不 ...
int len = in.read(but);
这个地方应该阻塞 等待客户端数据的。
现在整个程序都不行了 客户端 强行中断异常了
服务端还是这样了
127.0.0.1--连接成功
作者:
李见黎
时间:
2012-3-24 09:51
你写的这个不管什么Exception都是throw掉了,可能只有自行关闭了,有很多地方的问题是很难发现的,还是一步一一步的完善比较好。
作者:
唐朋
时间:
2012-3-24 11:47
把 sk.close();
ss.close();
去掉
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2