PDA

View Full Version : مشکل در سوکت پروگرمینگ



heidarzadeh2
پنج شنبه 17 اردیبهشت 1388, 19:25 عصر
با عرض سلام و خسته نباشید خدمت جاوا کاران عزیز
من می خوام یک برنامه ساده سوکت رو طراحی کنم اما برنامه سمت کلاینت نمیتونه Connect بشه.
میشه یه نگاهی به این سورس بندازید؟

کد برنامه سرور که فقط پیغام Hello Net World را به کلاینت می فرستد.
این کد درست کار می کند اما مشکل سمت کد کلاینت است.




package server;
import java.net.*;
import java.io.*;

public class Server {
public static void main(String[] args) {
ServerSocket s = null;
//Register your service on port 5432
try{s=new ServerSocket(4532);}catch(IOException e){e.printStackTrace();}
//Run the listen/accept loop forever
while(true){
try{
//Wait here and listen for a connection
Socket s1 = s.accept();
// Get output stream associated with the socket
OutputStream s1out= s1.getOutputStream();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s1out));
//Send your string
bw.write("Hello Net World!\n");
//Close the connection but not the server socket
bw.close();
s1.close();
}catch(IOException e){e.printStackTrace();}
}
}
}

کد سمت کلاینت
مشکل این کد این است که Connect نمی شود



package client;
import java.net.*;
import java.io.*;

public class Client {
public static void main(String[] args) {
try{
//Open your connection to a server at port 5432
Socket s1 = new Socket("127.0.0.1",5432);
//Get an input stream from the socket
InputStream is = s1.getInputStream();
// Decorate it with a "Data" input stream
DataInputStream dis = new DataInputStream(is);
//Read the input and print it to the screen
System.console().printf("",dis.readUTF());
System.out.println(dis.readUTF());
//When done just close the stream and connection
dis.close();
s1.close();
} catch(ConnectException e){
e.printStackTrace();
}
catch(IOException e){}
}
}


هنگامی که این برنامه را اجرامی کند خطای زیر رخ می دهد.



java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl .java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSoc ketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.j ava:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.j ava:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:180)
at client.Client.main(Client.java:9)
BUILD SUCCESSFUL (total time: 1 second)


در ضمن من فایروال و Antivirus را هم غیر فعال کردم ولی باز هم خطا داد.

java.source.ir
یک شنبه 17 خرداد 1388, 15:33 عصر
سلام،
دوست عزيز نكته اي كه در اين برنامه از آن غافل شده اي اين است كه در برنامه نويسي سوكت بايد شماره پورت مورد استفاده هم در سمت سرور و هم در سمت كلاينت يكي باشد! در غير اينصورت ارتباط برقرار نخواهد شد.
شما در برنامه سرور از شماره پورت 4532، و در سمت كلاينت از 5432 استفاده نموده اي. حال راه حل اينكار اين است كه يكي از اين شماره ها را با ديگري برابر كني.

Socket s1 = new Socket("127.0.0.1",5432);
كد بالا را سمت كلاينت به كد زير تغيير بده
Socket s1 = new Socket("127.0.0.1",4532);

اگر به اطلاعات بيشتر در اين زمينه احتياج داشتي، به بنده اطلاع بده. خوشحال ميشم كمكت كنم.

majnoon and
یک شنبه 17 آبان 1388, 19:21 عصر
سلام من يك كدنويسي به زبان بيسيك درباره سوكت ونخ با توضيحات كامل لازم دارم وتوضيحاتي دراين دومورد
ممنون

manvaputra
یک شنبه 17 آبان 1388, 21:08 عصر
سلام من يك كدنويسي به زبان بيسيك درباره سوكت ونخ با توضيحات كامل لازم دارم وتوضيحاتي دراين دومورد
ممنون

دوست عزيز اينجا تالار جاواست نه بيسيك ، لطفا به اين موارد دقت فرماييد تا پست هاتون حذف يا منتقل نشن.

nontemoshi
یک شنبه 06 دی 1388, 22:53 عصر
با سلام
1- میخواستم اگه میشه چند منبع خوب دز ضمینه سوکت پروگرمینگ با جاوا معرفی کنین.
2- اگه میشه کد فارسی کردن کیبورد رو در جاوا اگه کسی میدونه بذاره ممنون میشم.
3- اگه میشه کد تاریخ شمسی رو در جاوا بذارین.