java socket tcp重連等 處理粘包、沾包
阿新 • • 發佈:2019-02-14
這個程式是前段時間寫的德州撲克棋牌手程式,現在把以前寫的東西整理出來。
下面是socket部分,還是很有幫助的:
詳細程式碼:https://github.com/gocaption/caption/blob/master/gameprivate void start(String severIP, int serverPort) { // TODO Auto-generated method stub try { s = new Socket(); s.setReuseAddress(true); remoteAddr = new InetSocketAddress(severIP, serverPort); int playport = Integer.parseInt(playPort); SocketAddress localAddr = new InetSocketAddress(playIp, playport); s.bind(localAddr); s.connect(remoteAddr); while(!s.isConnected()){ try { Thread.sleep(100); s.connect(remoteAddr); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //register registerMsg(playId, playName); //receive Msg while (true) { while(!s.isConnected()){ try { Thread.sleep(100); s.connect(remoteAddr); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } receiveMsg(); if (stopexe) { break; } } } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace();