1

実行したいサンプルTCPクライアントおよびサーバーアプリケーションがありますが、それらを実行する方法がわかりません。あるホストでクライアントプログラムをコンパイルし、別のホストでサーバーアプリケーションをコンパイルする必要があると書かれていますが、コンピューターが1台しかない場合、これを行う方法がわかりません。これは非常に簡単ですが、始めるには少し助けが必要です。

TCPサーバーアプリケーションのサンプルは次のとおりです。

import java.io.*; 
import java.net.*;

class TCPServer {

public static void main(String argv[]) throws Exception 
{ 
  String clientSentence; 
  String capitalizedSentence;

  ServerSocket welcomeSocket = new ServerSocket(6790); 

  while(true) { 

               Socket connectionSocket = welcomeSocket.accept();

       BufferedReader inFromClient = 
         new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));

       DataOutputStream  outToClient = 
         new DataOutputStream(connectionSocket.getOutputStream());

       clientSentence = inFromClient.readLine();

       capitalizedSentence = clientSentence.toUpperCase() + '\n';

       outToClient.writeBytes(capitalizedSentence); 
    } 
} 
} 

これがサンプルTCPClientアプリケーションです

import java.io.*; 
import java.net.*; 
class TCPClient {

    public static void main(String argv[]) throws Exception 
    { 
        String sentence; 
        String modifiedSentence;

        BufferedReader inFromUser = 
          new BufferedReader(new InputStreamReader(System.in));

        Socket clientSocket = new Socket("10.0.1.2", 6790);

        DataOutputStream outToServer = 
          new DataOutputStream(clientSocket.getOutputStream());

        BufferedReader inFromServer = 
          new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));

        sentence = inFromUser.readLine();

        outToServer.writeBytes(sentence + '\n');

        modifiedSentence = inFromServer.readLine();

        System.out.println("FROM SERVER: " + modifiedSentence);

        clientSocket.close(); 
                   
    } 
}

ここに何かありますか?

これがまさに私がしていることです

ステップ1
(出典:skitch.com

ステップ2
(出典:skitch.com

Eclipseを使用するのはこれが初めてなので、そこで何か間違ったことをしている可能性があります。私は通常DrJavaを使用していますが、何らかの理由で両方を同時に実行することはできませんでした。

4

2 に答える 2

4

ほとんどすべてのソケット プログラムは、同じコンピューター上で両方の半分を実行できます。あるウィンドウでサーバーを実行し、別のウィンドウでクライアントを実行し、接続アドレス 127.0.0.1 (つまりlocalhost、自分のコンピューター) を指定します。

于 2012-07-15T21:07:01.913 に答える
0

このコードを使用している人は誰でも、プログラムをステップ実行して、接続が正常に確立されていることを確認しました (「localhost」などの適切な IP に変更した場合)。ただし、TCPServer と TCPClient の両方が最初に readLine を実行するため、どちらも入力を待機してスタックしますが、決して来ません。それらの 1 つを変更して、最初に何かを書き込みます。

于 2017-11-27T14:32:29.450 に答える