Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以在单个应用程序中处理客户端和浏览器连接?_Java_Sockets_Jsp - Fatal编程技术网

Java 是否可以在单个应用程序中处理客户端和浏览器连接?

Java 是否可以在单个应用程序中处理客户端和浏览器连接?,java,sockets,jsp,Java,Sockets,Jsp,让我解释一下我的问题,我找不到合适的方式来表达我的意思 因此,我创建了一个Java套接字服务器和一个客户端,它可以毫无问题地进行通信。我想扩展服务器,使其能够与为此目的而设计的网页进行通信,它拥有客户端应用程序所做的所有输入,它是用JSP编写的,一切似乎都很好 但是,我想问一下,是否可以将JSP服务器“嵌入”到我的套接字服务器中?这样地: -通过服务器套接字识别连接,并接受它。 -然后,在某种程度上,它应该确定接收到的连接是来自客户端应用程序还是来自浏览器页面。 -最后,它应该以不同的方式处理请

让我解释一下我的问题,我找不到合适的方式来表达我的意思

因此,我创建了一个Java套接字服务器和一个客户端,它可以毫无问题地进行通信。我想扩展服务器,使其能够与为此目的而设计的网页进行通信,它拥有客户端应用程序所做的所有输入,它是用JSP编写的,一切似乎都很好

但是,我想问一下,是否可以将JSP服务器“嵌入”到我的套接字服务器中?这样地: -通过服务器套接字识别连接,并接受它。 -然后,在某种程度上,它应该确定接收到的连接是来自客户端应用程序还是来自浏览器页面。 -最后,它应该以不同的方式处理请求,并以不同的格式发送响应


因此,基本上我可以在一个应用程序中完成这项工作,或者我必须在JSP页面中编写处理,然后该页面将“伪造”一个连接到服务器并接收响应的客户机?

基本上,客户机应用程序和浏览器是一样的。浏览器只是将HTML显示为页面,基本上处理HTTP请求

由于您的问题非常抽象(您说您已经实现了纯套接字,本质上是-),因此很难为您提供精确的解决方案,但这里有两个想法:

1) 客户端应用程序可以使用不同的应用程序协议,即您自己的应用程序协议。而浏览器将使用HTTP one


2) 如果客户机也在使用HTTP请求,那么区分它们的唯一方法就是分析

我忘了提到客户机和服务器之间的通信是在客户机发送JSONArray时完成的,数组的第一个元素是JSONObject,它包含客户机的序列化信息,如IP地址、MAC地址、唯一ID,第二个元素也是一个特殊的序列化对象,一种“请求”服务器将解析并执行的。编辑(意外按下enter):我想我会以某种方式解析浏览器发送的内容,这样,我就可以开始以不同的方式处理它了。是否有库可用于解析原始HTTP请求?因此
用户代理
标题是您的公告,您可以在JSP中使用websocket连接到服务器。您的服务器可以区分websocket连接和非websocket连接,并进行相应的处理。如果您在服务器上使用Netty,将会容易得多。