درخواست آموزش برنامه نویسی سوکت با زبان جاوا یا c++

سلام.

میخوام برنامه نویسی سوکت با زبان جاوا رو یاد بگیرم ولی یا واقعا مطالبش گیج کنندست یا کسی نبوده که به زبان ساده و کاربردی توضیح بده-

منبع ( خواهشا فارسی ) دارید که آموزش ساده و کاربردی در این مورد داده باشه؟

کاش یکی از برنامه نویسای سکان اکادمی بیاد و این مبحث مهم رو انجام بده.

با تشکر

پاسخ ها

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

سلام  این برنامه نویسی یک پیش نیاز دارد اول یک کتاب شبکه مطالعه کرده باشید.مثلا تنن بام

خوب من یک مثال کوتاه می زنم تا بدونید سوکت پروگرمینگ هم مثل سایر بخش ها است فقط باید شبکه را بدونید.

سورس قسمت کلاینت یعنی سمت ما ،سمت مشتری....

مشاهده کردین برای وصل کردن سخت افزاره از سوکت استفاده می کنیم،برای اتصال کیبورد به  کیس و......(سوکت=محل اتصال کابل )

داخل برنامه هم اصطلاحا گفته می شود داریم برنامه نویسی سوکت انجام می دهیم

ما از روی کلاس سوکت یک شی ساخته و از ان استفاده می کنیم یعنی کلا شی گرایی بلد باشی سخت نیست

 

// File Name GreetingClient.java

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

public class GreetingClient
{
   public static void main(String [] args)
   {
      String serverName = args[0];
      int port = Integer.parseInt(args[1]);
      try
      {
         System.out.println("Connecting to " + serverName +
		 " on port " + port);
         Socket client = new Socket(serverName, port);
         System.out.println("Just connected to " 
		 + client.getRemoteSocketAddress());
         OutputStream outToServer = client.getOutputStream();
         DataOutputStream out = new DataOutputStream(outToServer);
         out.writeUTF("Hello from "
                      + client.getLocalSocketAddress());
         InputStream inFromServer = client.getInputStream();
         DataInputStream in =
                        new DataInputStream(inFromServer);
         System.out.println("Server says " + in.readUTF());
         client.close();
      }catch(IOException e)
      {
         e.printStackTrace();
      }
   }
}

سورس  قسمت سمت سرور

// File Name GreetingServer.java

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

public class GreetingServer extends Thread
{
   private ServerSocket serverSocket;
   
   public GreetingServer(int port) throws IOException
   {
      serverSocket = new ServerSocket(port);
      serverSocket.setSoTimeout(10000);
   }

   public void run()
   {
      while(true)
      {
         try
         {
            System.out.println("Waiting for client on port " +
            serverSocket.getLocalPort() + "...");
            Socket server = serverSocket.accept();
            System.out.println("Just connected to "
                  + server.getRemoteSocketAddress());
            DataInputStream in =
                  new DataInputStream(server.getInputStream());
            System.out.println(in.readUTF());
            DataOutputStream out =
                 new DataOutputStream(server.getOutputStream());
            out.writeUTF("Thank you for connecting to "
              + server.getLocalSocketAddress() + "\nGoodbye!");
            server.close();
         }catch(SocketTimeoutException s)
         {
            System.out.println("Socket timed out!");
            break;
         }catch(IOException e)
         {
            e.printStackTrace();
            break;
         }
      }
   }
   public static void main(String [] args)
   {
      int port = Integer.parseInt(args[0]);
      try
      {
         Thread t = new GreetingServer(port);
         t.start();
      }catch(IOException e)
      {
         e.printStackTrace();
      }
   }
}

 

که این ها سورس هستند،پس باید ان هاراکامپایل کنیم.

javac GreetingClinet.java //کامپایل  فایل کلاینت 

javac GreetingServer.java //کامپایل فایل سرور 

 

 که خروجی فایل هایی با پسوند .calssاست که این ها بدرد کار ما می خورد برای اجرا

 

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

حال با فایل  ها ی کامپایل شده  باید چکار کنیم.خوب

باید اول فایل سرور را روی یک پورت فعال کرد

java GreetingServer 4096//فعال کردن سورس سمت سرور

که حالا باید یک سی  ام دی جدید باز کنی و کلاینت را اجرا کنی

java  GreetingClient localhost 4096

که  می بینی اگر timeout نگذشته باشه با هم ارتباط برقرار می کنند.

اینم لینک ویدیو اجرای این سورس

https://www.youtube.com/watch?v=0g5kb4UUjiA

online-support-icon