在已建立的连接上,我要不定时的向SOCKET服务器发送数据。
我的发送函数是这样:if(null == this.sock)
{
this.currentConnStatus = ConnStatus.DISCONNECTED;
return;
}
try
{
PrintWriter pw = new PrintWriter(sock.getOutputStream());
pw.write("handShake");
pw.flush();
//读缓冲
BufferedReader br = new BufferedReader(new InputStreamReader(sock.getInputStream()));
String tempString = br.readLine(); logger.info("Server return:" + tempString);
}
catch (IOException e)
{
sock = null;
this.currentConnStatus = ConnStatus.DISCONNECTED;
stopReadWriteThread();
e.printStackTrace();
}但是服务器端总是收不到,好像发送一次后再发送socket就不可用了。是不是因为每次发送的时候,都新建PrintWriter的原因?为什么我发完后关了PrintWriter的话,socket也就关掉了?
我的发送函数是这样:if(null == this.sock)
{
this.currentConnStatus = ConnStatus.DISCONNECTED;
return;
}
try
{
PrintWriter pw = new PrintWriter(sock.getOutputStream());
pw.write("handShake");
pw.flush();
//读缓冲
BufferedReader br = new BufferedReader(new InputStreamReader(sock.getInputStream()));
String tempString = br.readLine(); logger.info("Server return:" + tempString);
}
catch (IOException e)
{
sock = null;
this.currentConnStatus = ConnStatus.DISCONNECTED;
stopReadWriteThread();
e.printStackTrace();
}但是服务器端总是收不到,好像发送一次后再发送socket就不可用了。是不是因为每次发送的时候,都新建PrintWriter的原因?为什么我发完后关了PrintWriter的话,socket也就关掉了?
解决方案 »
- 会swing的进来帮帮忙吧
- struts 为什么用org.springframework.web.context.ContextLoaderListener才不会出错
- 数据库问题
- struts验证的问题??疑是myeclipse 的bug!!
- 关于使用hibernate对某个表的一个栏位进行更新的问题
- 在struts框架中用动态表单遇到的问题
- 配置好了tomcat连接池,可在javabean中调用却总是报错
- 有用JAVA开发C/S结构的吗?
- 请教高手:Struts问题,如何设置<html:radio>的Checked属性
- 救我,关于Jbuilder中的Tree问题
- Map 怎么用递归的方式 进行转换
- j2ee开发中多网站共享一个用户库
用一个就够了 为啥每次都新建?
可以用isOutputShutdown()来看看是否关了输出流
不过不知道你的程序有没有多线程的问题(当然这个跟你的问题无关,只是多线程的话不能保证传输的一致性)
如果你用readline方法的,我觉得你肯定读不到,原因在于发送的服务器的消息
并没有回车换行\r\n
所以你的消息会被一直阻塞把你服务器端的代码贴出来给我看看