مشکل مهم با سوکت نویسی در اندروید به همراه پروژه اجرا شده

+1 امتیاز
332 بازدید
سوال شده مهر 22, 1394 توسط jaykob  

سلام و احترام

 

من یک پروژه کلاینت با سوکت پروگرامینگ ساختم فقط قصدم ارسال اطلاعات به سرورم هست . سرور من آی پی ۱۲۱۳ رو listen کرد و ip استاتیک هم دارم برنامه رو نوشتم اول اصلا اجرا نمی شد و مشکل چند نخی نبودن بود که این کارو انجام دادم حل شد ولی الان دکمه connect رو می زنم برنامه بسته می شه دسترسی هایی که گفته شده بوده رو هم اضافه کردم و تلاش خودم رو کردم ولی نشد من از روی آموزش سایت زیر جلو رفتم :

http://www.edumobile.org/android/socket-programming/

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

لینک دانلود پروژه :

http://trainbit.com/files/7068051884/Socket.zip

با تشکر

 

این مطلب را به اشتراک بگذارید

2 پاسخ

0 امتیاز
پاسخ داده شده مهر 27, 1394 توسط ASHKARAN  
انتخاب شده دی 30, 1394 توسط ASHKARAN
 
بهترین پاسخ

سورس شما به شرح زیره:

package com.example.socket;

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;


public class MainActivity extends Activity {

	
	private EditText txtIP;
	private EditText txtPort;
	private EditText txtMessage;
	private Button btnSend;
	private Button btnConnect;
	
	private Socket socket;
	private String serverIpAddress = "my-static-server-ip";
	// AND THAT'S MY DEV'T MACHINE WHERE PACKETS TO
	// PORT 5000 GET REDIRECTED TO THE SERVER EMULATOR'S
	// PORT 6000
	private static final int REDIRECTED_SERVERPORT = 1213 ;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		txtIP=(EditText) findViewById(R.id.txtIp);
		txtPort=(EditText) findViewById(R.id.txtPort);
		txtMessage=(EditText) findViewById(R.id.txtMessage);
		btnSend=(Button) findViewById(R.id.btnSend);
		btnConnect=(Button) findViewById(R.id.btnConnect);
		
		final MainActivity m=new MainActivity();
		
		btnConnect.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				new Thread(new Runnable() {
					
					@Override
					public void run() {
						
						m.ConnectServer();
					}
				}).start();
				
			}
		});
		
		btnSend.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {

				new Thread(new Runnable() {
					
					@Override
					public void run() {
						
						m.SendMessageToSearver();
					}
				}).start();
			
				
			}
		
		
		
		

		
	});
	
	}
	

	protected void SendMessageToSearver() {
	try {
			
			String str = txtMessage.getText().toString();
			PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
			out.println(str);
			Log.d("Client", "Client sent message");
			Toast.makeText(getApplicationContext(), "Packet Send", Toast.LENGTH_SHORT).show();
			} catch (UnknownHostException e) {
			Toast.makeText(getApplicationContext(), "Error 1", Toast.LENGTH_SHORT).show();
			e.printStackTrace();
			} catch (IOException e) {
			Toast.makeText(getApplicationContext(), "Error 2", Toast.LENGTH_SHORT).show();
			e.printStackTrace();
			} catch (Exception e) {
			Toast.makeText(getApplicationContext(), "Error 3", Toast.LENGTH_SHORT).show();
			e.printStackTrace();
			}
			
		
	}


	protected void ConnectServer() {
		try {
			InetAddress serverAddr = InetAddress.getByName(serverIpAddress);
			socket = new Socket(serverAddr, REDIRECTED_SERVERPORT);
			Toast.makeText(getApplicationContext(), "Server Connected", Toast.LENGTH_SHORT).show();
			} catch (UnknownHostException e1) {
				Toast.makeText(getApplicationContext(), "Error to Connected 1", Toast.LENGTH_SHORT).show();

			e1.printStackTrace();
			} catch (IOException e1) {
				Toast.makeText(getApplicationContext(), "Error to Connected 2", Toast.LENGTH_SHORT).show();

			e1.printStackTrace();
			}
		
	}
}

در تابع connectServer شما سعی می کنید به سرور متصل شید.

آدرس سرور رو در متغیر زیر ذخیره کردید:

private String serverIpAddress = "my-static-server-ip";

مقدار متغیر serverIpAddress  باید یک آدرس IP  و یا دامین معتبر باشه....

در واقع شما فقط آدرس سرور رو اشتباه وارد کردید.

کافیه کد بالا رو با به این صورت تغییر بدید:

private String serverIpAddress = "192.168.1.5";
که 192.168.1.5 باید برابر با آدرس سرور شما باشه 

موفق باشید.

0 امتیاز
پاسخ داده شده مهر 23, 1394 توسط ASHKARAN  

با عرض سلام

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

دارای دیدگاه مهر 24, 1394 توسط jaykob  
سلام استاد

شاید برا اسمش بوده جای دیگه آپلود کردم با پسورد :

http://uploadboy.com/g9hjuxwwgymz.html

pass : ashkaran@ashkaran

تشکر از شما

779 سوال

714 پاسخ

1,207 دیدگاه

409 کاربر

متاسفانه نیستم

این مطلب را به اشتراک بگذارید

ali.ashkaran@gmail
ما .....
  • سعی بر پاسخگویی به سوالات دیگران داریم.
  • به سوال و یا نظر دیگران احترام می گذاریم .
  • این وبسایت را به دیگران معرفی می کنیم.
  • همواره صمیمیت و ادب را رعایت می کنیم.
  • به سوالمان برچسب های مرتبط اضافه می کنیم.
  • در حین طرح سوال فرد خاصی را مخاطب قرار نمی دهیم .
...