PDA

View Full Version : مشکل در برنامه نویسی سوکت



Mr.cpp
یک شنبه 01 تیر 1393, 12:26 عصر
سلام خدمت دوستان عزیز
من در رابطه با برنامه نویسی سوکت در جاوا مشکل دارم و با هر پورتی که برنامه رو امتحان میکنم ارور میده که :

Exception in thread "main" java.net.BindException: Address already in use: JVM_Bind
at java.net.DualStackPlainSocketImpl.bind0(Native Method)
at java.net.DualStackPlainSocketImpl.socketBind(Unkno wn Source)
at java.net.AbstractPlainSocketImpl.bind(Unknown Source)
at java.net.PlainSocketImpl.bind(Unknown Source)
at java.net.ServerSocket.bind(Unknown Source)
at java.net.ServerSocket.<init>(Unknown Source)
at java.net.ServerSocket.<init>(Unknown Source)
at main.main(main.java:9)



و وقتی در cmd با کد netstat پورت رو چک میکنم میبینم در حالت listening قرار داره
اینم کد برنامه
import java.net.*; import java.io.*;
import java.util.*;
public class main {

public static void main(String[] args) throws Exception {


ServerSocket mysock = new ServerSocket(12);

Socket mylink = mysock.accept();
System.out.println("new client conected");

DataInputStream input = new DataInputStream(mylink.getInputStream());
DataOutputStream output = new DataOutputStream(mylink.getOutputStream());

String request="";

String sendstring;
Scanner inp = new Scanner(System.in);
while ( !request.equals("QUIT") )
{

request = input.readUTF ();
System.out.println(request);
sendstring=inp.next();
output.writeUTF (sendstring);
}

mylink.close();
}
}
سپاس فراوان

cups_of_java
یک شنبه 01 تیر 1393, 12:48 عصر
شما از پورت های بالا (بالای 1000) استفاده کن... این پورت همونطور که خودتم میگی توسط یه برنامه دیگه لیسن شده و داره استفاده میشه.

Mr.cpp
یک شنبه 01 تیر 1393, 13:15 عصر
شما از پورت های بالا (بالای 1000) استفاده کن... این پورت همونطور که خودتم میگی توسط یه برنامه دیگه لیسن شده و داره استفاده میشه.
شما با هر پورتی تصور کنی امتحان کردم

Mr.cpp
یک شنبه 01 تیر 1393, 13:34 عصر
منتهی یه چیز دیگه که هست مثلا اگه پورت 1234 باشه بجای کانکت شدن به 127.0.0.1:1234 به 0.0.0.0:1234 لیسن میشه مشکل چیه؟

cups_of_java
یک شنبه 01 تیر 1393, 20:28 عصر
باید لیسن بشه دیگه و وقتی لیسن میشه روی 0.0.0.0 یعنی روی تمام ipهایی که روی کارت شبکه شما ست بشن لیسن خواهد بود... یعنی روی 127.0.0.1 هم لیسن هست.
پورت های بالای 10000 رو امتحان کن خودت داری netstat میگیری معلوم میشه کدوم پورت ها خالیه دیگه