Java中的套接字和进程
在Java中,最好的方法是打开一个持续侦听的端口,并且在收到数据包时仍然发送数据。目前我对网络编程不是特别精通,所以我在网上找到的教程并不是特别有用 将侦听套接字作为一个serversocket,并在一个单独的线程中运行到我用来向服务器发送数据的套接字,这样做有意义吗Java中的套接字和进程,java,networking,sockets,blackberry,Java,Networking,Sockets,Blackberry,在Java中,最好的方法是打开一个持续侦听的端口,并且在收到数据包时仍然发送数据。目前我对网络编程不是特别精通,所以我在网上找到的教程并不是特别有用 将侦听套接字作为一个serversocket,并在一个单独的线程中运行到我用来向服务器发送数据的套接字,这样做有意义吗 在一个松散相关的问题中。有人知道,如果只是在netbeans中为java编程,然后将其导出到blackberry(使用插件)上使用,那么套接字仍然可以工作吗?如果你能负担得起线程,试试这个(请记住,我省略了一些细节,比如异常处理和
在一个松散相关的问题中。有人知道,如果只是在netbeans中为java编程,然后将其导出到blackberry(使用插件)上使用,那么套接字仍然可以工作吗?如果你能负担得起线程,试试这个(请记住,我省略了一些细节,比如异常处理和线程处理)。您可能需要查看
SocketChannels
和/或NIO异步套接字/选择器。这应该让你开始
boolean finished = false;
int port = 10000;
ServerSocket server = new ServerSocket(port);
while (!finished) {
// This will block until a connection is made
Socket s = server.accept();
// Spawn off some thread (or use a thread pool) to handle this socket
// Server will continue to listen
}
我也需要回到这一点的基础。简单地说,我推荐O'Reilly的优秀Java,其中包括针对这种情况的代码示例(也可用)。请参阅第7章,了解您希望尽早做出的决定。至于连接黑莓,这是有问题的,因为在大多数情况下,黑莓没有公共IP地址,而是位于WAP网关或无线提供商接入点服务器后面。RIM提供移动数据服务器(MDS)来解决这个问题,并提供“推送”数据,该数据使用黑莓上的ServerSocket语义。MDS可用于黑莓企业服务器(BES)和Unite服务器
一旦设置好数据,就可以使用HTTP协议通过MDS发送到特定单元。有一个很好的描述了推送协议的LAMP源代码。中的参数PORT=7874连接到Blackberry浏览器推送服务器套接字。通过更改该参数,可以将有效负载发送到您自己的ServerSocket正在接受连接的任意端口 如果套接字代码必须在BlackBerry上运行,则不能使用标准Java套接字。您必须使用J2ME Connector.open API来创建这两种类型的套接字(从BlackBerry启动连接的套接字和在BlackBerry上侦听连接/推送的套接字)。看看RIM的JDE附带的例子。+1,虽然对于初学者来说这已经足够了,但他不应该尝试研究NIO