موضوعات وبسایت : اخبار
سوالات امتحان آیین نامه رانندگی

آموزش سوکت در اندروید

آموزش سوکت در اندروید

نویسنده : مینا علی زاده | زمان انتشار : 12 بهمن 1400 ساعت 17:22

جهت درج تبلیغات با قیمت مناسب در این سایت میتوانید به آی دی تلگرام زیر پیام دهید

@AlirezaSepand



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

بسم الله الرحمن الرحیم

سوالات امتحان آیین نامه رانندگی

فصل  دهم-بخش دوم

تا اینجا شما  یاد  گرفتید  که  چگونه  وب سرویس ها  xmlو  json   را اجرا  کنید

اگر شما  بخواهدی  که  برنامه شما به یک  server  متصل  شود  و  پیغام های   ارسال  و دریافت  کنید  شما به  تکنولوژی برنامه نویسی  نیار  دارید  که  به عنوان   شناختهSocket Programming  می شود. Socket Programming  یک  تکنولوژی میباشد  که  به شما  امکان  اتصال  بین  serverو  Client  را می دهید. در  ادامه  به شما شرح میدهیم  که  چگونه می توانید  چگونه  یک برنامه  چت  اندروید ایجاد  کنید که  از طریق   از طرق socket  استفاده می شود.  چندین برنامه می توانند  به  سرور  وصل  شده و  باهم  چت  کنند.

پروژه  جدیدی به نامSockets.  ایجاد  کنید

فایل  AndroidManifest.xml به  صورت  زیر تغیر دهید

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.MehrdadJavidi.sockets"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="14" />

<uses-permission android:name="android.permission.INTERNET" /> <application


android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

 و دستورات زیر را در  فایلmain.xml اضافه  کنید

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/txtMessage"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="onClickSend"
android:text="Send Message" />
<TextView
android:id="@+id/txtMessagesReceived"
android:layout_width="fill_parent"
android:layout_height="200dp"
android:scrollbars="vertical" />
</LinearLayout>

یک کلاس به نامCommsThread. ایجاد  کنید  و دستورات زیر را در  آن وارد کنید

package com.MehrdadJavidi.sockets;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import android.util.Log;
public class CommsThread extends Thread {
 private final Socket socket;
 private final InputStream inputStream;
 private final OutputStream outputStream;
 public CommsThread(Socket sock) {
 socket = sock;
 InputStream tmpIn = null;
 OutputStream tmpOut = null;
 try {
 // ---creates the inputstream and outputstream objects
 // for reading and writing through the sockets---
 tmpIn = socket.getInputStream();
 tmpOut = socket.getOutputStream();
 } catch (IOException e) {
 Log.d("SocketChat", e.getLocalizedMessage());
 }
 inputStream = tmpIn;
 outputStream = tmpOut;
 }
 public void run() {
 // ---buffer store for the stream---
 byte[] buffer = new byte[1024];
 // ---bytes returned from read()---
 int bytes;
 // ---keep listening to the InputStream until an
 // exception occurs---
 while (true) {
 try {
 // ---read from the inputStream---
 bytes = inputStream.read(buffer);
 // ---update the main activity UI---
 MainActivity.UIupdater.obtainMessage(0, bytes, -1, buffer)
 .sendToTarget();
 } catch (IOException e) {
 break;
 }
 }
 }
 // ---call this from the main activity to
 // send data to the remote device---
 public void write(byte[] bytes) {
 try {
 outputStream.write(bytes);
 } catch (IOException e) {
 }
 }
 // ---call this from the main activity to
 // shutdown the connection---
 public void cancel() {
 try {
 socket.close();
 } catch (IOException e) {
 }
 }
}
}


دستورات زیر را در SocketsActivity.javaوارد نمایید

package com.MehrdadJavidi.sockets;
import java.io.IOException;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.util.Log;
public class MainActivity extends Activity {
 static final String NICKNAME = "Mehrdad Javidi";
 InetAddress serverAddress;
 Socket socket;
 // ---all the Views---
 static TextView txtMessagesReceived;
 EditText txtMessage;
 // ---thread for communicating on the socket---
 CommsThread commsThread;
 // ---used for updating the UI on the main activity---
 static Handler UIupdater = new Handler() {
 @Override
 public void handleMessage(Message msg) {
 int numOfBytesReceived = msg.arg1;
 byte[] buffer = (byte[]) msg.obj;
 // ---convert the entire byte array to string---
 String strReceived = new String(buffer);
 // ---extract only the actual string received---
 strReceived = strReceived.substring(0, numOfBytesReceived);
 // ---display the text received on the TextView---
 txtMessagesReceived.setText(txtMessagesReceived.getText()
 .toString() + strReceived);
 }
 };
 private class CreateCommThreadTask extends AsyncTask<Void, Integer, Void> {
 @Override
 protected Void doInBackground(Void... params) {
 try {
 // ---create a socket---
 serverAddress = InetAddress.getByName("192.168.1.102");
 // --remember to change the IP address above to match your own--
 socket = new Socket(serverAddress, 500);
 commsThread = new CommsThread(socket);
 commsThread.start();
 // ---sign in for the user; sends the nick name---
 sendToServer(NICKNAME);
 } catch (UnknownHostException e) {
 Log.d("Sockets", e.getLocalizedMessage());
 } catch (IOException e) {
 Log.d("Sockets", e.getLocalizedMessage());
 }
 return null;
 }
 }
 private class WriteToServerTask extends AsyncTask<byte[], Void, Void> {
 protected Void doInBackground(byte[]... data) {
 commsThread.write(data[0]);
 return null;
 }
 }
 private class CloseSocketTask extends AsyncTask<Void, Void, Void> {
 @Override
 protected Void doInBackground(Void... params) {
 try {
 socket.close();
 } catch (IOException e) {
 Log.d("Sockets", e.getLocalizedMessage());
 }
 return null;
 }
 }
 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 // ---get the views---
 txtMessage = (EditText) findViewById(R.id.txtMessage);
 txtMessagesReceived = (TextView) findViewById(R.id.txtMessagesReceived);
 }
 public void onClickSend(View view) {
 // ---send the message to the server---
 sendToServer(txtMessage.getText().toString());
 }
 private void sendToServer(String message) {
 byte[] theByteArray = message.getBytes();
 new WriteToServerTask().execute(theByteArray);
 }
 @Override
 public void onResume() {
 super.onResume();
 new CreateCommThreadTask().execute();
 }
 @Override
 public void onPause() {
 super.onPause();
 new CloseSocketTask().execute();
 }
}

7-download-And-Parser-Json-file-in-android.jpg

برای  تست برنامه  شما  باید از  فایل   download_2.pngserver.exe  استفاده  کنید.

این  برنامه  می تواند  چندبن کاربر   به به برنامه   وصل شده  و سپس   پیام  های  دریافتی  را  به  تمام   کلاینت های   وصل  شده ارسال کنند.. برای   اجرای   سرور  به  cmd  رفته و دستور زیر را  وارد  کنند.C:\>Server.exe Your_IP_Address

به  عنوان  مثال  اگر  ip شما  192.168.1.102میباشد   دستور  به  صورت زیر می باشد.

C:\>Server.exe 192.168.1.102

8-download-And-Parser-Json-file-in-android.jpg

قبل از اینکه شما  برنامه  را بر روی  دستگاه  واقعی  اجرا  کنید. مطئن شوید که   دستگاه  به   شبکه  یکسان   متصل  هستند. به  عبارتی دیگر   کامپیوتر به یک  شبکه  wireless router وصل می شوند و  دیگر   وسایل هم به آن و صل می شوند.

برنامه را  اجرا کنید  برنامه را  اجرا  کنید  و  متن را  وارد و  سپس بر روی   دکمه Send Message کلیک  کنید

9-download-And-Parser-Json-file-in-android.jpg

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

توضیحات

برای  کنترل  پیچیدگی ها ی    ارتباط های   سوکتی.  شما یک  کلاس جدا  به نامCommsThread ایجاد  کردید این  کلاس از  کلاسThread مشتق شده است که تمام ارتبایاط سوکتی  می تواندد در  Thrad های  مختلفی  اجرا  شوند. جدا از Thread مربوط  به  UI.


public class CommsThread extends Thread {
}

در کلاس  شما  سه شی  تعریف  کردید.

privatefinal Socket socket;
privatefinal InputStream inputStream;
privatefinal OutputStream outputStream;

اولین آنها شی socket می باشد. که سوکت TCP سمت کاربر را فراهنم می آورد. وشی InputStreamبه شما کمک می کند تا داده ها را از ارتباط های سوکت بخوانید. وشیOutputStream به شما کمک می کند تا داده ها را در ارتباطات سوکت بنویسید
سازنده برای کلاس CommsThread یک شی از SOCKET را دریافت می کند. و بع از آن سعی میکند که شی های InputStream and OutputStream را بدست آورد

public CommsThread(Socket sock) {
 socket = sock;
 InputStream tmpIn = null;
 OutputStream tmpOut = null;
 try {
 // ---creates the inputstream and outputstream objects
 // for reading and writing through the sockets---
 tmpIn = socket.getInputStream();
 tmpOut = socket.getOutputStream();
 } catch (IOException e) {
 Log.d("SocketChat", e.getLocalizedMessage());
 }
 inputStream = tmpIn;
 outputStream = tmpOut;
 }


متدrun به ارتباط گوش می دهد برای آمدن دادهها و خواند آنها توسط شی InputStream.زمانی که داده ها دریافت شد سپس UI مربوط به activity را بعه روز رسانی می کند و پیام را که شامل داده های دریافتی می باشد به آن ارسال می کند.

 public void run() {
 // ---buffer store for the stream---
 byte[] buffer = new byte[1024];
 // ---bytes returned from read()---
 int bytes;
 // ---keep listening to the InputStream until an
 // exception occurs---
 while (true) {
 try {
 // ---read from the inputStream---
 bytes = inputStream.read(buffer);
 // ---update the main activity UI---
 MainActivity.UIupdater.obtainMessage(0, bytes, -1, buffer)
 .sendToTarget();
 } catch (IOException e) {
 break;
 }
 }
 }

متد write به شما کمک می کند تا داده هار ا در ارتباط socket بنویسید

//---call this from the main activity to
// send data to the remote device---
 public void write(byte[] bytes) {
 try {
 outputStream.write(bytes);
 } catch (IOException e) {
 }
 }


و متد cancel ارتباط سوکت را قطع می کند

public void cancel() {
 try {
 socket.close();
 } catch (IOException e) {
 }
 }


در فایل SocketsActivity.java شما 3 زیر کلاس ایجاد کردید که از کلاس AsyncTask مشتق شده اند

private class CreateCommThreadTask extends AsyncTask<Void, Integer, Void> {
 @Override
 protected Void doInBackground(Void... params) {
 try {
 // ---create a socket---
 serverAddress = InetAddress.getByName("192.168.1.102");
 // --remember to change the IP address above to match your own--
 socket = new Socket(serverAddress, 500);
 commsThread = new CommsThread(socket);
 commsThread.start();
 // ---sign in for the user; sends the nick name---
 sendToServer(NICKNAME);
 } catch (UnknownHostException e) {
 Log.d("Sockets", e.getLocalizedMessage());
 } catch (IOException e) {
 Log.d("Sockets", e.getLocalizedMessage());
 }
 return null;
 }
 }
private class WriteToServerTask extends AsyncTask<byte[], Void, Void> {
protected Void doInBackground(byte[]... data) {
commsThread.write(data[0]);
return null;
}
}
private class CloseSocketTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
try {
socket.close();
} catch (IOException e) {
Log.d("Sockets", e.getLocalizedMessage());
}
return null;
}
}

کلاس CreateCommThreadTaskکه همزمان می باشد می باشد یک ارتباط با سرور بر قرار می کند.
برای سوکت سرور, اولین متن ارسال شده توسط کلاینت بعد از ارتباط انجام شده به عنوان نام مستعار برای کلاینت در نظر گرفته می شود.
از این رو زمانی که ارتباط بر قرار شد شما بل فاصله یک پیام به سرور ارسال می کنید که در بر گیرند نام مستعاری برای کلاینت می باشد.
sendToServer(txtMessage.getText().toString());
کلاسWriteToServerTask به شما امکان می دهد تا داده ها را به صورت همرمان ارسال کنید و درحای کلاس CloseSocketTask ارتباط را قطع میکند و متد sendToServer() یک متن را دریافت و به byte تبدیل می کند. و سپس متدexecute() از کلاس WriteToServerTaskرا برای ارسال داده ها به صورت همزمانی فراخوانی می کند.


private void sendToServer(String message) {
byte[] theByteArray = message.getBytes();
new WriteToServerTask().execute(theByteArray);
}


ودر آخر هم زمانی که Activyt به حالت paused, می رود ارتباط سوکت قطع می شود. وزمانی که دوباره resumed, می شود ارتباط ایجاد می شود


@Override
public void onResume() {
super.onResume();
new CreateCommThreadTask().execute();
}
@Override
public void onPause() {
super.onPause();
new CloseSocketTask().execute();
}

آموزش برنامه نویسی

آیا این مطلب برای شما مفید بود؟


برچسب ها : آموزش سوکت اندروید


سایر منابع و مطالب مرتبط با آموزش سوکت در اندروید [ برای قرار گرفتن در این لیست از صفحه تماس با ما اقدام کنید ]
gitigit.com .
برنامه نویسی Socket در اندروید | شرح یک مثال برای ساخت یک ...

Feb 5, 2020 — در این آموزش از سری مجموعه صفر تا صد اندروید، اساس برنامه های چت با Socket را بهتر می توان درک نمود. در حالت پایه برنامه ها در شبکه از ارتباط بین ... ادامه...


homeandroid.ir .
آموزش سوکت اندروید socket ساخت اپلیکیشن چت Android ...

Apr 16, 2019 — سلام و احترام خدمت دوستان عزیز سایت خانه اندروید در این پست می خواهیم آموزش سوکت رو در اختیار شما عزیزان قرار بدیم که امیدوارم مثل اموزش های قبلی ... ادامه...


ably.ir .
آموزش برنامه نویسی :: SOCKETS PROGRAMMING در اندروید

Aug 29, 2015 — در ادامه به شما شرح میدهیم که چگونه می توانید چگونه یک برنامه چت اندروید ایجاد کنید که از طریق از طرق socket استفاده می شود. چندین برنامه می توانند ... ادامه...


faradars.org .
آموزش ساخت اپلیکیشن چت و آشنایی با برنامه نویسی سوکت در ...

فیلم‌های آموزشی ساخت اپلیکیشن چت و آشنایی با برنامه نویسی سوکت در اندروید، به همراه پیاده‌سازی عملی ، به صورت گام به گام و با تدریس مهندس محمد مهدی علیزاده. ادامه...


programchi.ir .
آموزش Socket در برنامه نویسی اندروید - آموزش برنامه نویسی

Jul 19, 2017 — سلام دوستان در این سری از آموزش های برنامه نویسی اندروید به آموزش Socket ... رو که می خواهیم انجام دهد (ارسال داده و بررسی های لازم برای اتصال به سوکت). ادامه...


programchi.ir .
آموزش Socket در برنامه نویسی اندروید بخش دوم - ProgramChi.ir

Jul 20, 2017 — سلام دوستان در این سری از آموزش های برنامه نویسی اندروید به آموزش Socket در برنامه نویسی اندروید بخش دوم می پردازیم در مطلب قبلی خیلی از دوستان ... ادامه...


clicksite.org .
آموزش اندروید اپلیکیشن چت مشابه تلگرام( با استفاده از Socket ...

sup.clicksource@gmail.com. بخش های رایگان این مجموعه آموزشی: ساخت سرور وبرقراری اتصال با سوکت ( بخش 1 ) دانلود ... ادامه...


answers.uncox.com .
آموزش ارتباط کلاینت با سرور از طریق سوکت

آموزش ارتباط کلاینت با سرور از طریق سوکت یکی ازیک سوال در مورد ارتباط با ... و هم کلاینت را به زبان جاوا ( که طبیعتا قابل استفاده در اندروید است) می نویسم ، اما ... ادامه...


avasam.ir .
آواسام مقالات آموزشی برنامه نویسی سوکت در جاوا

برنامه نویسی سوکت در زبان جاوا زمانی کاربرد دارد که دو اپلیکیشن نوشته شده در دو JRE متفاوت بخواهند با ... دوره ی آموزش برنامه نویسی اندروید با جاوا و android studio. ادامه...


www.tejariapp.com .
آموزش ساخت چت realtime با اندروید ، NodeJs و Socket.io ...

آموزش ساخت چت realtime با اندروید ، NodeJs و Socket.io ، عنوان آموزشی می باشد که در این ساعت از تجاری اپ به شما اموزش خواهیم داد.با ما همراه باشید. ادامه...


roocket.ir .
ساخت یک برنامه چت Realtime با استفاده از اندروید، Node.js و ...

۲- سمت کاربر: ساخت برنامه اندروید و پیاده‌سازی Socket.io برای کاربر. ... قبل از پایان این آموزش، باید عملکرد آخر که تشخیص می‌دهد که یک کاربر خارج شده است را ... ادامه...


softwaremaker.ir .
دوره برنامه نویسی سوکت در اندروید - مرجع کامل انجام و ارائه و ...

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


psrd.ir .
آموزش برنامه نویسی سوکت در اندروید

Jun 16, 2017 — به دنبال یادگیری بخش اول آموزش اتصال اندروید به دیتابیس SQLServer ،بخش دوم آموزش خود را باعنوان نحوه نوشتن برنامه های سمت سرور برای برنامه ... ادامه...


barnamenevis.org .
برنامه نویسی سوکت در جاوا و اندروید

Feb 4, 2016 — نقل قول: برنامه نویسی سوکت در جاوا و اندروید. سلام. دوستان درست میفرمایند، آموزش در مورد socket programming به خصوص برای جاوا زیاده. من یه مثال ... ادامه...


irprogram.com .
ساخت اپلیکیشن چت در اندروید | آموزشگاه تخصصی برنامه ...

ساخت اپلیکیشن چت در اندروید یکی از پر طرفدار ترین برنامه هاست که همه برنامه نویسای اندروید اولین چیزی که به ذهنشون ... برنامه نویسی سوکت (Socket) در اندروید: ... دانلود همه ویدئو های آموزش ساخت اپلیکیشن چت در اندروید پارت اول فایل های ضمیمه. ادامه...


android-developers.ir .
آموزش سوکت در اندروید / آموزشگاه اندروید

در این دوره نحوه ی راه اندازی و استفاده از سوکت در اندروید به همراه پروژه ی چت آموزش داده میشود که پس از گذراندن این دوره می توانید یک اپلیکیشن چت با تمامی امکانات که ... ادامه...


7learn.com .
آموزش برنامه نویسی سوکت در PHP - آموزش socket programming ...

Aug 6, 2020 — وب سوکت (Web Socket) یک پروتکل ارتباطی مداوم و دو طرفه از مرورگر کاربر به سرور است. در این مقاله به آموزش برنامه نویسی سوکت در PHP ... ادامه...


safecomp.ir .
Socket Programming در جاوا | safecomp.ir

Mar 31, 2016 — (در کد سرور یک سوکت از نوع ServerSocket ایجاد می کنیم) . ... در اولین گام از این آموزش یک برنامه ساده می نویسیم که فقط کلاینت به سرور وصل شود. ... بسیار داغ است ، برنامه نویسی اندروید نیز به همین دلیل به یکی از موضوعات جذاب و ... ادامه...


www.tahlildadeh.com .
آموزش FireBase Socket در Android - تحلیل داده

Aug 18, 2018 — به خاطر داشته باشید که حتما Internet permission را در Android manifest تان اضافه کنید. زیرا این برنامه برای ایجاد اتصال WebSocket به سرور ... ادامه...


programming.tosinso.com .
آموزش جاوا (Java) قسمت 49 : برنامه نویسی سوکت و شبکه قسمت 1

با سلام به همه دوستان و همراهان عزیز Itpro. یکی از قابلیت هایی که باعث می شود یک زبان برنامه نویسی محبوبیت بیشتری داشته باشد این است که آن زبان در شبک... ادامه...


www.sourcebaran.com .
دانلود کتاب آموزشی برنامه نویسی سوکت - سورس باران

در این مطلب کتاب آموزشی برنامه نویسی سوکت را برای دوستان عزیز جهت دانلود قرار داده ایم. ... آموزش پروژه محور طراحی سایت با پایتون و جنگو مختص بازار کار ... کتاب آموزش برنامه نویسی اندروید برای برنامه نویسان تحت وب با Mosync framework ادامه...


toplearn.com .
آموزش سوکت نویسی با پایتون - تاپ لرن

آموزش سوکت نویسی با Python با محوریت هک و امنیت سوکت نویسی با پایتون از اون دسته مباحثی هست که هر شخصی رو به خودش جذب میکنه !‌ درکل میخوام بهتون. ادامه...


platinco.ir .
برنامه نویسی سوکت در React Native - ری اکت نیتیو - استودیو ...

پلاگین سوکت نیتیو جاوا (java socket native) برای react native اندروید. ... های جاوا در اندروید را ارائه میدهیم که امکان اجرای یک سوکت نیتیو (socket native) مشتری و ... اموزش و معرفی نرم افزار postman پس از نصب و اجرای Postman، در ابتدا می خواهد که ... ادامه...


www.daneshjooyar.com .
برنامه نویسی سوکت برای ارتباط سایت با آردوینو به همراه آموزش ...

برنامه نویسی سوکت یکی از کاربردی ترین انواع برنامه نویسی است که این امکان را فراهم می‌کند تا برنامه‌نویس با استفاده از هر زبانی مثل جاوا، سی شارپ، اندروید و php و ... ادامه...



ارسال نظر

نام


ایمیل


نظر