با سلام خدمت اساتید محترم .
من با استفاده از برنامه نویسی سوکت یک برنامه چت خیلی ساده نوشتم . زمانی که برنامه رو روی کامپیوتر سرور اجرا می کنم مشکلی نداره اما زمانی که برنامه رو روی کامپیوتر کلاینت اجرا می کنم با این ارور مواجه می شم : java socket address already in use:jvm bind
کد قسمت های مختلف برنامه به این صورته
کد اتصال در سرور :
public ServerSocket so = new ServerSocket(3308);
public Socket ml =so.accept();
public DataInputStream input = new DataInputStream( ml.getInputStream() );
public DataOutputStream output=new DataOutputStream(ml.getOutputStream());
کد مربوط به اتصال در کلاینت :
public InetAddress ip=InetAddress.getByName("192.168.01.20");
int port=3308;
public Socket mylink=new Socket (ip, port);
public DataInputStream input = new DataInputStream( mylink.getInputStream() );
public DataOutputStream output=new DataOutputStream(mylink.getOutputStream());
این هم کد کلاس دریافت پیام در هر دو برنامه :
public class Receive implements Runnable {
@Override
public void run() {
Server_Side ss;
do{
try {
ss = new Server_Side();
String me =ss.input.readUTF();
ss.txtinbox.setText(ss.txtinbox.getText()+"\n"+me) ;
} catch (Exception ex) {
JOptionPane.showMessageDialog(null,ex.getMessage() );
}
}
while(true);
}
}
این هم کد اعلان این کلاس و اجرای ترد در متد main کلاس اصلی هر دو برنامه :
Receive re = new Receive();
ExecutorService exr = Executors.newCachedThreadPool();
exr.execute(re);}
catch(Exception e){System.out.println(e.getMessage());}
در ضمن این برنامه رو جند بار با port های متفاوت امتحان کردم ولی باز به همین ارور برخوردم.
ممنون می شم اگر من رو راهنمایی کنید.