Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.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_Networking_Sockets_Blackberry - Fatal编程技术网

Java中的套接字和进程

Java中的套接字和进程,java,networking,sockets,blackberry,Java,Networking,Sockets,Blackberry,在Java中,最好的方法是打开一个持续侦听的端口,并且在收到数据包时仍然发送数据。目前我对网络编程不是特别精通,所以我在网上找到的教程并不是特别有用 将侦听套接字作为一个serversocket,并在一个单独的线程中运行到我用来向服务器发送数据的套接字,这样做有意义吗 在一个松散相关的问题中。有人知道,如果只是在netbeans中为java编程,然后将其导出到blackberry(使用插件)上使用,那么套接字仍然可以工作吗?如果你能负担得起线程,试试这个(请记住,我省略了一些细节,比如异常处理和

在Java中,最好的方法是打开一个持续侦听的端口,并且在收到数据包时仍然发送数据。目前我对网络编程不是特别精通,所以我在网上找到的教程并不是特别有用

将侦听套接字作为一个serversocket,并在一个单独的线程中运行到我用来向服务器发送数据的套接字,这样做有意义吗


在一个松散相关的问题中。有人知道,如果只是在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