Java套接字程序_java – 通过Web套接字进行应用程序到应用程序的通信

我通过Web套接字(没有浏览器工作)获得应用程序到应用程序的通信有些麻烦.由于这似乎不是最常用的网络套接字应用程序,我想知道是否有人有这方面的经验.

为什么我要使用网络套接字?

由于防火墙问题,我需要通过端口80/8080(我需要继续处理其他一些HTTP通信,所以我不能只使用普通的TCP / IP套接字通信).

我是如何尝试这项工作的?

我正在为服务器和客户端使用Jetty 8.0.我的服务器代码:

public class WebSocketTestServlet extends WebSocketServlet {

public WebSocket doWebSocketConnect(HttpServletRequest arg0, String arg1) {

return new TestWebSocket();

}

class TestWebSocket implements WebSocket, WebSocket.OnTextMessage

{

public void onClose(int arg0, String arg1) {

}

public void onOpen(Connection arg0) {

}

public void onMessage(String messageText) {

}

}

}

我的客户代码:

public class MyWebSocketClient{

MyWebSocketClient() throws IOException

{

WebSocketClientFactory factory = new WebSocketClientFactory();

try {

factory.start();

} catch (Exception e1) {

e1.printStackTrace();

}

WebSocketClient client = factory.newWebSocketClient();

WebSocket.Connection connection = client.open(new URI("ws://myserver:8080/testws"), new WebSocket.OnTextMessage()

{

public void onOpen(Connection connection)

{

}

public void onClose(int closeCode, String message)

{

}

public void onMessage(String data)

{

}

}).get(50, TimeUnit.SECONDS)

}

我看到了什么问题?

ProtocolException

Caused by: java.net.ProtocolException: Bad response status 302 Found

at org.eclipse.jetty.websocket.WebSocketClientFactory$HandshakeConnection.closed(WebSocketClientFactory.java:423)

at org.eclipse.jetty.websocket.WebSocketClientFactory$WebSocketClientSelector.endPointClosed(WebSocketClientFactory.java:235)

at org.eclipse.jetty.io.nio.SelectorManager$SelectSet.destroyEndPoint(SelectorManager.java:948)

at org.eclipse.jetty.io.nio.SelectChannelEndPoint.doUpdateKey(SelectChannelEndPoint.java:523)

at org.eclipse.jetty.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:469)

at org.eclipse.jetty.io.nio.SelectorManager$1.run(SelectorManager.java:283)

at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)

at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)

at java.lang.Thread.run(Thread.java:619)

知道为什么这不起作用吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值