بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

پروژه چت توسط بلوتوث به جای Wifi Chat

مدیریت گفتگو
Hassan94 10 سال پیش
آخرین تغییر: 10 سال پیش

من پروژه wifi chat استاد رو تا آخر رفتم ولی هر کاری کردم نتونستم روی دیوایس واقعی تست بگیرم. و تو پروژه هم مجوز اینترنت رو فعال کردم تا برنامه رو بشه تو دیوایس واقعی بالا آورد، ولی برنامه همچنان بدون عملکرد درست! در ضمن آی پی گوشی رو خودم وارد کردم. با کلی روش که میدونستم امتحانش کردم.

میخواستم بدونم چطور میشه به جای آی پی از بلوتوث استفاده کرد. لطفا دقیق توضیح بدید. ممنون

یا اگه میشه با آی پی راش انداخت چطور میشه. باز هم ممنون

 package com.uncocoder.app.wifi_chat;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;


public class WifiChatActivity extends Activity {

private Handler handler = new Handler();
private TextView text;
private EditText input;
private Button btnSend;
private Socket socket;
private DataOutputStream outputStream;
private BufferedReader inputStream;


private boolean searchNetwork() {
log("Connecting...");

String range = "192.168.56.";
for (int i = 1; i <= 255; i++) {
String ip = range + i;
try {
//log("Try IP: " + ip);
socket = new Socket();
socket.connect(new InetSocketAddress(ip, 9000), 10);

log("Connected!");
return true;
}
catch (Exception e) {}
}

return false;
}


private void runChatServer() {
try {
log("Waiting for client...");

ServerSocket serverSocket = new ServerSocket(9000);
socket = serverSocket.accept();

log("A new client Connected!");
}
catch (IOException e) {}
}


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

text = (TextView) findViewById(R.id.text);
input = (EditText) findViewById(R.id.input);
btnSend = (Button) findViewById(R.id.btnSend);

//server
Thread thread = new Thread(new Runnable() {

@Override
public void run() {
if ( !searchNetwork()) {
runChatServer();
}

try {
outputStream = new DataOutputStream(socket.getOutputStream());
inputStream = new BufferedReader(new InputStreamReader(socket.getInputStream()));
}
catch (IOException e1) {
log("Error: Connection is not stable, exit");
shutdown();
}

while (true) {
try {
String message = inputStream.readLine();
if (message != null) {
log(message);
}
}
catch (IOException e) {}
}
}
});

btnSend.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
if (outputStream == null) {
return;
}

try {
String message = input.getText().toString() + "\n";
outputStream.write(message.getBytes());
}
catch (IOException e) {
e.printStackTrace();
}
}
});

thread.start();
}


private void log(final String message) {
long timestamp = System.currentTimeMillis();
final long time = timestamp % 1000000;

handler.post(new Runnable() {

@Override
public void run() {
text.setText(text.getText() + "\n @" + time + ": " + message);
}
});
}


@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
shutdown();
return true;
}

return super.onKeyDown(keyCode, event);
}


private void shutdown() {
try {
if (socket != null) {
socket.close();
}
}
catch (IOException e) {
e.printStackTrace();
}
System.exit(0);
}
}

نظرات

Amir 10 سال پیش
تو تابع searchNetwork به جای ".String range = "192.168.56 بذار ".String range = "192.168.1
Hassan94 10 سال پیش
اگه اینکار رو انجام بدم تو دیوایس واقعی درست میشه، یعنی با دوتا گوشی میشه چت کرد!؟
Amir 10 سال پیش
آره روی یک گوشی Hotspot بساز و با گوشی دوم به اون وصل شو اگه اشتباه نکنم این دوتا دسترسی رو هم بخواد
Hassan94 10 سال پیش
کدوم دوتا دسترسی hotspot , Wifi

پاسخ‌ها 1

Amir 10 سال پیش

اگه اشتباه نکنم این دوتا دسترسی رو هم بخواد

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

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

نظرات

Hassan94 10 سال پیش
من این کار رو انجام دادم ولی درست نشدش آی پی رو وارد کردم و دسترسی ها رو گذاشتم ولی ارتباط برقرار نشد.
Amir 10 سال پیش
پروژه رو روی emulator تست کردی ؟
Hassan94 10 سال پیش
آره ولی رو emulator هم جواب نداد چون آی پی با اون یکی نبود رو گوشی هم تست کردم جواب ندادش دیگه چطوری میشه اینکار رو به ته رسوند!
Amir 10 سال پیش
منظورم این بود که پروژه استاد رو emulator تست کردی جواب گرفتی؟
Hassan94 10 سال پیش
جواب گرفتم تو em ولی نه با این آی پی که گفتی با اون آی پی که وارد کرده بودم اول "192.168.56." جواب گرفتم ولی رنج آی پی رو عوض کردم دیگه تو em نتونستم ارتباط برقرار کنم.!

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