java - 关于socket长连接 新手向
PHP中文网
PHP中文网 2017-04-18 10:17:02
0
2
340

TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,基于TCP的socket应该也是长连接;


   public static void main(String[] args) throws IOException {
       Socket s = new Socket("127.0.0.1", 8081);
   }

我不明白一点,就是运行如上代码,会得到一个socket(假设服务器已开启),可是为什么我运行后程序会自动结束并关闭socket呢?我明明没有调用s.close(),

请问如何使程序保持长连接,只能用while(true)形式的心跳包吗?如果是,那在心跳期间我怎么能发送有效的数据(假设心跳数据为无效的)呢?

PHP中文网
PHP中文网

认证0级讲师

membalas semua(2)
阿神

Kod anda boleh menunjukkan bahawa benang telah selesai mengitar semula sambungan socket. Saya tidak tahu dengan apa server yang anda maksudkan itu dibangunkan Jika ia adalah socket asli, nampaknya paket degupan jantung tidak diperlukan secara lalai untuk mengekalkan sambungan itu digunakan dan idle time ditetapkan Paket Denyutan Jantung digunakan untuk mengekalkan sambungan ini Pelayan berpendapat bahawa anda mungkin tidak menyambung semula selepas terbiar seketika, jadi ia menutup sambungan anda untuk mengelakkan pembaziran sumber. (Pemahaman peribadi)

左手右手慢动作

Ini bermakna urutan utama telah keluar. Anda boleh cuba menambah Thread.sleep(1000000) selepasnya.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!