一。服务端代码:
java.net。*; //ソケット、Serversocket、およびInetAddressのインポートJava.io.*; // IOExceptionおよびinuctputStreamパブリッククラスtcpechoserver {private static final int bufsize = 32; //受信バッファのサイズpublic static void main(string [] args)throws ioexception {int servport = 5500; //サーバーソケットを作成してクライアント接続を受け入れます。 int recvmsgsize; //受信メッセージbyteのサイズ[] receivebuf = new byte [bufsize]; //バッファを受け取りますwhile(true){//永遠に実行し、接続を受け入れてサービスを提供しますsocket clntsock = servsock.accept(); //クライアント接続を取得socketaddress clientAddress = clntsock.getRemoteSocketAddress(); system.out.println( "" + clientAddressのクライアントの処理); inputStream in = clntsock.getInputStream(); outputStream out = clntsock.getOutputStream(); //クライアントが接続を閉じるまで受信します。 } clntsock.close(); //ソケットを閉じます。このクライアントは終わりました! } / *到達しない * /}}二。客户端代码:
java.net。*; java.io.*をインポートします。 public class tcpechoclient {public static void main(string [] args)throws ioexception {string server = "127.0.0.1"; //サーバー名またはIPアドレスINT SERVPORT = 5500; ////サーバーポートバイト[] data = "hi、world" .getBytes(); //指定されたポートソケットソケット= new Socket(サーバー、サーブポート)でサーバーに接続されているソケットを作成します。 System.out.println( "サーバーに接続...エコー文字列の送信"); inputstream in = socket.getinputStream(); outputStream out = socket.getOutputStream(); out.write(data); //エンコードされた文字列をサーバーに送信します//サーバーから同じ文字列を受け取りますint totalbytesrcvd = 0; //これまでに受信した合計バイトint bytesrcvd; //最後の読み取りで受信したwhile(totalbytesrcvd <data.length){if(bytesrcvd = in.read(data、totalbytesrcvd、data.length -length -totalbytesrcvd)== -1)スローnew SocketExcept( "接続閉じた閉じた); totalbytesrcvd += bytesrcvd; } //データアレイは完全なシステムです。 socket.close(); //ソケットとそのストリームを閉じます}}上述代码的tcp服务端是单线程、一次只能服务一个客户端。
hava的语法、大家可以关注、大家可以关注:《 javaで考えているJdk 1.7