これは私のクライアントとサーバーのコードです。
class Client1 {Client1(int no){try{文字列メッセージ; message="こんにちはこれはクライアントです"+no; byte [] b = message.getBytes(); DatagramPacket dp = new DatagramPacket(b、b.length、InetAddress.getLocalHost()、3700); DatagramSocket送信者=newDatagramSocket(); sender.send(dp); } catch(例外e){System.out.println( "client shutdown"); }}}
次に、私のサーバークラスは
クラスServer1{
int cnt=0;
String s1;
Server1()
{
try {
byte[] buffer = new byte[65536];
DatagramPacket incoming = new DatagramPacket(buffer, buffer.length);
DatagramSocket ds = new DatagramSocket(3700);
ds.receive(incoming);
byte[] data = incoming.getData();
String s = new String(data, 0, incoming.getLength());
System.out.println("Port" + incoming.getPort() + " on " + incoming.getAddress() + " sent this message:");
System.out.println(s.toUpperCase());
}
catch (IOException e)
{
System.err.println(e);
}
}
}
次に、私の実行可能な実装は
クラスprothreadはRunnable{を実装します
//long time=0;
//int portno;
int flag=0; // this is to differentiate between a server and client
private String capitalizedSentence;
prothread(long l)
{
if(l==1)
{ // it is a server
flag=1;
}
else
{
flag=(int) l;
}
}
@Override
public void run(){
// TODO Auto-generated method stub
System.out.println("Starting thread");
if(flag==1)// Code for server
{
Server1 s=new Server1();
}
else // code for client
{
Client1 c=new Client1(flag);
}
}
}
最後に、このクライアントとサーバーをデプロイするクラスは
パブリッククラスSamplepro31{
public static void main(String[] args) {
// First i'm going to create a server and then clients for it
int i=1;
int cnt=0;
prothread[] p;
Thread[] th;
Random r =new Random();
// Array has been declared
p=new prothread[10];// Memory allocated to it
th= new Thread[1000];
p[0]=new prothread(1);
cnt=1;
//p[0].setportno(cnt);
th[0]=new Thread(p[0]);
th[0].start();
while(cnt<3)
{
p[cnt]=new prothread(cnt);
// here send the port number
th[cnt]=new Thread(p[cnt]);
//p[cnt1].setportno(cnt1);
th[cnt].start();
cnt++;
}
}
}
したがって、私が抱えている問題は1つのサーバーであり、一度に1つのクライアントしか実行されていません。代わりに、2つのクライアントが実行されている必要があります。
開始スレッド開始スレッド開始スレッドclinetのコンストラクター2の内部java.net.BindException:アドレスは既に使用されています:HELLOをバインドできませんこれはクライアント2です
だから誰かが私が間違っていることを教えてもらえますか?