ソケットは、茎を持っているが、主にサーバー側の茎、そして私たちは、同じ問題が発生した解決策を共有するためにここに、長い時間のために、オンラインで検索することができる。まず、クラスSimpleServerとを構築するための最初のモジュールは、このクラスは、サーバー、建物です良い後、左ボタンでコードを実行、あなたはモジュールを実行しない、ファイル名を指定して実行をクリックすることができます。このように受け入れるように実行しているサーバーは、彼がダウンして実行し続けるであろうとクライアントとの接続までブロックします、Tomcatでサービスポート番号ここでは、ポート番号のテリアは:はBindException:アドレスを既に使用中:エラーを実行した後、長い時間のためのJVM_Bindオンライン検索は、ポートが衝突占有されていることが判明した後、私は音とTomcatをオフにし、Tomcatはどのように非常にもつれをオフにしますああクライアントを使用して、オンライン解決:TomcatはPIDのポートを占有見つける-ano netstatコマンド入力し、Tomcatを開くCMD
私は、タスクマネージャを開くには、右下の、その後6728、WindowsのWindowsタスクバーました
詳細については、クリックして、見つけるためにPIDをクリックして、6728見つけ、プログラムを終了するには、右、あなたが次回実行時には、サーバがはBindExceptionを報告しません:使用中のすでに住所:JVM_Bind間違い
パブリック クラスSimpleServerと{ 公共の 静的な 無効メイン(文字列[] argsが)スローにIOException { // ServerSocketを作成、クライアントをリッスンするようにソケットを接続するための要求 のServerSocket SSを= 新しい新しい ServerSocketを(9999 ); // 巡回は、クライアントからの受け入れを続けます要求は、サーバーにもソケットに対応する生成し ながら、(真の){ ソケットS = ss.acceptは(); OutputStreamのOS = s.getOutputStream(); os.write(「こんにちは、あなたは新年受け取るには、サーバー\ N-たい! ".getBytes(" UTF-8 " )); のSystem.out.println( "サーバ」)。 os.close(); S。CLOSE(); } } }
緑の三角形の実行サーバの左上隅をクリックしてください
///////////////
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); new Thread(){ @Override public void run() { super.run(); try { Socket socket = new Socket("你的ip地址,cmd输入ipconfig查找", 9999); //设置10秒之后即认为是超时 socket.setSoTimeout(10000); BufferedReader br = new BufferedReader(new InputStreamReader( socket.getInputStream())); String line = br.readLine(); System.out.println("来自服务器的数据:" + line); br.close(); socket.close(); } catch (UnknownHostException e) { // TODO Auto-generated catch block Log.e("UnknownHost", "来自服务器的数据"); e.printStackTrace(); } catch (IOException e) { Log.e("IOException", "来自服务器的数据"); // TODO Auto-generated catch block e.printStackTrace(); } } }.start(); } }
上面是另一个module的主activity,也就是客户端,输出信息代表接收到服务端发送的消息.不要忘了打开网络权限