socket.connect(socketAddress,timeout ))

DAO 2012-08-23 03:12:37
接口中的一个方法:向某个IP服务器下的某port 通过Socket 传入 request字符串,结果服务器处理返回 response字符串
问题:服务器端是怎么实现的?也就是说他是怎么监听有数据需要处理的s时候进行及时的处理?开始我想到ServerSocket但这是web工程主要怎么来实现呢?





public String reuqestTrade(String request, String url, String port,
String encode) {
String str = "ERROR";
Socket socket = null;
OutputStream os;
InputStream is;
try {
socket = new Socket(); // 客户端给出IP和端口号
SocketAddress socketAddress = new InetSocketAddress(url,
Integer.parseInt(port.trim()));
socket.connect(socketAddress, Integer.parseInt(Help
.getUrl("timeout")));
log.info("socket(客服端未限制端口) 已连接-->" + url + ":" + port);
is = socket.getInputStream();
os = socket.getOutputStream();

os.write(request.getBytes());
os.flush();

byte[] serByte = new byte[2048];
String serverStr = null;
int flag = is.read(serByte);
if (flag != -1) {
serverStr = new String(serByte);
}
log.info(" answer --> " + serverStr);
return serverStr;
} catch (UnknownHostException e) {
log.error("systemerr", e);
str = "ERROR";
return str;
} catch (IOException e) {
log.error("systemerr", e);
str = "ERROR";
return str;
} finally {
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
log.error("systemerr", e);
str = "ERROR";
return str;
}
}
}
}
...全文
1134 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
anly_hz 2012-08-24
  • 打赏
  • 举报
回复
对啊,线程,死循环,线程里面定时休眠就行了
public void run(){

while(true){

try{
//。。。。。。
}catch(Exception e){
}


}

}
DAO 2012-08-23
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
接口中的一个方法:向某个IP服务器下的某port 通过Socket 传入 request字符串,结果服务器处理返回 response字符串Java code

public String reuqestTrade……
[/Quote]
美女, 其实我就是想怎么让这个serversocket 一直挂起呢?线程?
anly_hz 2012-08-23
  • 打赏
  • 举报
回复
接收request字符串,返回response字符串,你可以选择用http接口就行了,不需要用socket,
ServerSocket跟是否是WEB工程没有关系,如果一定要用ServerSocket也可以,你只需要启动一个ServerSocket服务,侦听一个端口就行了,WEB项目在加载启动的时候就启动这个类就行了,具体实现方式你可以采用过滤器的方式(在过滤器类中启动这个服务),或者通过spring配置一个类的初始化方法。

81,094

社区成员

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

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