Advertisement
Guest User

Untitled

a guest
Apr 20th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.21 KB | None | 0 0
  1. class Task implements Runnable {
  2. @Override
  3. public void run() {
  4. try {
  5. String messageStr = "feed";
  6. int server_port = 8888;
  7. InetAddress local = InetAddress.getByName("10.0.2.2");
  8. int msg_length = messageStr.length();
  9. byte[] message = messageStr.getBytes();
  10.  
  11.  
  12. DatagramSocket s = new DatagramSocket();
  13. //
  14.  
  15. DatagramPacket p = new DatagramPacket(message, msg_length, local, server_port);
  16. s.send(p);//properly able to send data. i receive data to server
  17.  
  18. for (int i = 0; i <= 20; i++) {
  19. final int value = i;
  20. message = new byte[30000];
  21. p = new DatagramPacket(message,message.length );
  22. s.receive(p); //keeps on waiting here but i am sending data back from server, but it never receives
  23. final byte[] data = p.getData();;
  24. try {
  25.  
  26.  
  27.  
  28. Thread.sleep(1000);
  29. } catch (InterruptedException e) {
  30. e.printStackTrace();
  31. }
  32. handler.post(new Runnable() {
  33. @Override
  34. public void run() {
  35. progressBar.setProgress(value);
  36. imageView.setImageBitmap(BitmapFactory.decodeByteArray(data,0,data.length));
  37. }
  38. });
  39. }
  40. }
  41. catch(Exception ex)
  42. {
  43.  
  44. }
  45. }
  46. }
  47.  
  48. import java.net.DatagramPacket;
  49. import java.net.DatagramSocket;
  50. import android.annotation.SuppressLint;
  51. import android.content.Intent;
  52. import android.os.AsyncTask;
  53. import android.os.Build;
  54.  
  55. public class UDP_Server
  56. {
  57. private AsyncTask<Void, Void, Void> async;
  58. private boolean Server_aktiv = true;
  59.  
  60. @SuppressLint("NewApi")
  61. public void runUdpServer()
  62. {
  63. async = new AsyncTask<Void, Void, Void>()
  64. {
  65. @Override
  66. protected Void doInBackground(Void... params)
  67. {
  68. byte[] lMsg = new byte[4096];
  69. DatagramPacket dp = new DatagramPacket(lMsg, lMsg.length);
  70. DatagramSocket ds = null;
  71.  
  72. try
  73. {
  74. ds = new DatagramSocket(Main.SERVER_PORT);
  75.  
  76. while(Server_aktiv)
  77. {
  78. ds.receive(dp);
  79.  
  80. Intent i = new Intent();
  81. i.setAction(Main.MESSAGE_RECEIVED);
  82. i.putExtra(Main.MESSAGE_STRING, new String(lMsg, 0, dp.getLength()));
  83. Main.MainContext.getApplicationContext().sendBroadcast(i);
  84. }
  85. }
  86. catch (Exception e)
  87. {
  88. e.printStackTrace();
  89. }
  90. finally
  91. {
  92. if (ds != null)
  93. {
  94. ds.close();
  95. }
  96. }
  97.  
  98. return null;
  99. }
  100. };
  101.  
  102. if (Build.VERSION.SDK_INT >= 11) async.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
  103. else async.execute();
  104. }
  105.  
  106. public void stop_UDP_Server()
  107. {
  108. Server_aktiv = false;
  109. }
  110. }
  111.  
  112. import java.net.DatagramPacket;
  113. import java.net.DatagramSocket;
  114. import android.annotation.SuppressLint;
  115. import android.os.AsyncTask;
  116. import android.os.Build;
  117.  
  118. public class UDP_Client
  119. {
  120. private AsyncTask<Void, Void, Void> async_cient;
  121. public String Message;
  122.  
  123. @SuppressLint("NewApi")
  124. public void NachrichtSenden()
  125. {
  126. async_cient = new AsyncTask<Void, Void, Void>()
  127. {
  128. @Override
  129. protected Void doInBackground(Void... params)
  130. {
  131. DatagramSocket ds = null;
  132.  
  133. try
  134. {
  135. ds = new DatagramSocket();
  136. DatagramPacket dp;
  137. dp = new DatagramPacket(Message.getBytes(), Message.length(), Main.BroadcastAddress, Main.SERVER_PORT);
  138. ds.setBroadcast(true);
  139. ds.send(dp);
  140. }
  141. catch (Exception e)
  142. {
  143. e.printStackTrace();
  144. }
  145. finally
  146. {
  147. if (ds != null)
  148. {
  149. ds.close();
  150. }
  151. }
  152. return null;
  153. }
  154.  
  155. protected void onPostExecute(Void result)
  156. {
  157. super.onPostExecute(result);
  158. }
  159. };
  160.  
  161. if (Build.VERSION.SDK_INT >= 11) async_cient.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
  162. else async_cient.execute();
  163. }
  164.  
  165. //start UDP server
  166. Server = new UDP_Server();
  167. Server.runUdpServer();
  168.  
  169. //UDP Client erstellen
  170. Client = new UDP_Client();
  171.  
  172. //Set message
  173. Client.Message = "Your message";
  174. //Send message
  175. Client.NachrichtSenden();
  176.  
  177. <uses-permission android:name="android.permission.INTERNET" />
  178.  
  179. <?xml version="1.0" encoding="utf-8"?>
  180. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  181. android:layout_width="match_parent"
  182. android:layout_height="match_parent">
  183.  
  184. <TableRow
  185. android:id="@+id/tr_send_message"
  186. android:layout_width="match_parent"
  187. android:layout_height="wrap_content"
  188. android:gravity="center"
  189. android:layout_alignParentLeft="true"
  190. android:layout_alignParentStart="true"
  191. android:layout_alignParentTop="true"
  192. android:layout_marginTop="11dp">
  193.  
  194. <EditText
  195. android:id="@+id/edt_send_message"
  196. android:layout_width="0dp"
  197. android:layout_height="wrap_content"
  198. android:layout_weight="1"
  199. android:layout_marginRight="10dp"
  200. android:layout_marginLeft="10dp"
  201. android:hint="Enter message"
  202. android:inputType="text" />
  203.  
  204. <Button
  205. android:id="@+id/btn_send"
  206. android:layout_width="wrap_content"
  207. android:layout_height="wrap_content"
  208. android:layout_marginRight="10dp"
  209. android:text="Send" />
  210. </TableRow>
  211.  
  212. <ScrollView
  213. android:layout_width="match_parent"
  214. android:layout_height="match_parent"
  215. android:layout_alignParentLeft="true"
  216. android:layout_alignParentStart="true"
  217. android:layout_below="@+id/tr_send_message"
  218. android:layout_marginTop="25dp"
  219. android:id="@+id/scrollView2">
  220.  
  221. <TextView
  222. android:id="@+id/tv_reply_from_server"
  223. android:layout_width="match_parent"
  224. android:layout_height="wrap_content"
  225. android:orientation="vertical" />
  226. </ScrollView>
  227.  
  228. </RelativeLayout>
  229.  
  230. import android.os.Bundle;
  231. import android.os.Handler;
  232. import android.support.v7.app.AppCompatActivity;
  233. import android.view.View;
  234. import android.widget.Button;
  235. import android.widget.EditText;
  236. import android.widget.TextView;
  237.  
  238. import java.io.IOException;
  239. import java.net.DatagramPacket;
  240. import java.net.DatagramSocket;
  241. import java.net.InetAddress;
  242.  
  243. /**
  244. * Created by Girish Bhalerao on 5/4/2017.
  245. */
  246.  
  247. public class UDPClientSocketActivity extends AppCompatActivity implements View.OnClickListener {
  248.  
  249. private TextView mTextViewReplyFromServer;
  250. private EditText mEditTextSendMessage;
  251.  
  252. @Override
  253. protected void onCreate(Bundle savedInstanceState) {
  254. super.onCreate(savedInstanceState);
  255. setContentView(R.layout.activity_main);
  256.  
  257. Button buttonSend = (Button) findViewById(R.id.btn_send);
  258.  
  259. mEditTextSendMessage = (EditText) findViewById(R.id.edt_send_message);
  260. mTextViewReplyFromServer = (TextView) findViewById(R.id.tv_reply_from_server);
  261.  
  262. buttonSend.setOnClickListener(this);
  263. }
  264.  
  265. @Override
  266. public void onClick(View v) {
  267.  
  268. switch (v.getId()) {
  269.  
  270. case R.id.btn_send:
  271. sendMessage(mEditTextSendMessage.getText().toString());
  272. break;
  273. }
  274. }
  275.  
  276. private void sendMessage(final String message) {
  277.  
  278. final Handler handler = new Handler();
  279. Thread thread = new Thread(new Runnable() {
  280.  
  281. String stringData;
  282.  
  283. @Override
  284. public void run() {
  285.  
  286. DatagramSocket ds = null;
  287. try {
  288. ds = new DatagramSocket();
  289. // IP Address below is the IP address of that Device where server socket is opened.
  290. InetAddress serverAddr = InetAddress.getByName("xxx.xxx.xxx.xxx");
  291. DatagramPacket dp;
  292. dp = new DatagramPacket(message.getBytes(), message.length(), serverAddr, 9001);
  293. ds.send(dp);
  294.  
  295. byte[] lMsg = new byte[1000];
  296. dp = new DatagramPacket(lMsg, lMsg.length);
  297. ds.receive(dp);
  298. stringData = new String(lMsg, 0, dp.getLength());
  299.  
  300. } catch (IOException e) {
  301. e.printStackTrace();
  302. } finally {
  303. if (ds != null) {
  304. ds.close();
  305. }
  306. }
  307.  
  308. handler.post(new Runnable() {
  309. @Override
  310. public void run() {
  311.  
  312. String s = mTextViewReplyFromServer.getText().toString();
  313. if (stringData.trim().length() != 0)
  314. mTextViewReplyFromServer.setText(s + "nFrom Server : " + stringData);
  315.  
  316. }
  317. });
  318. }
  319. });
  320.  
  321. thread.start();
  322. }
  323. }
  324.  
  325. <?xml version="1.0" encoding="utf-8"?>
  326. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  327. android:layout_width="match_parent"
  328. android:layout_height="match_parent">
  329.  
  330. <Button
  331. android:id="@+id/btn_stop_receiving"
  332. android:layout_width="wrap_content"
  333. android:layout_height="wrap_content"
  334. android:text="STOP Receiving data"
  335. android:layout_alignParentTop="true"
  336. android:enabled="false"
  337. android:layout_centerHorizontal="true"
  338. android:layout_marginTop="89dp" />
  339.  
  340. <ScrollView
  341. android:layout_width="match_parent"
  342. android:layout_height="match_parent"
  343. android:layout_below="@+id/btn_stop_receiving"
  344. android:layout_marginTop="35dp"
  345. android:layout_alignParentLeft="true"
  346. android:layout_alignParentStart="true">
  347.  
  348. <TextView
  349. android:id="@+id/tv_data_from_client"
  350. android:layout_width="match_parent"
  351. android:layout_height="wrap_content"
  352. android:orientation="vertical" />
  353. </ScrollView>
  354.  
  355. <Button
  356. android:id="@+id/btn_start_receiving"
  357. android:layout_width="wrap_content"
  358. android:layout_height="wrap_content"
  359. android:text="START Receiving data"
  360. android:layout_alignParentTop="true"
  361. android:layout_centerHorizontal="true"
  362. android:layout_marginTop="14dp" />
  363. </RelativeLayout>
  364.  
  365. import android.os.Bundle;
  366. import android.os.Handler;
  367. import android.support.v7.app.AppCompatActivity;
  368. import android.view.View;
  369. import android.widget.Button;
  370. import android.widget.TextView;
  371.  
  372. import java.io.IOException;
  373. import java.net.DatagramPacket;
  374. import java.net.DatagramSocket;
  375.  
  376. /**
  377. * Created by Girish Bhalerao on 5/4/2017.
  378. */
  379.  
  380. public class UDPServerSocketActivity extends AppCompatActivity implements View.OnClickListener {
  381.  
  382. final Handler handler = new Handler();
  383.  
  384. private Button buttonStartReceiving;
  385. private Button buttonStopReceiving;
  386. private TextView textViewDataFromClient;
  387.  
  388. @Override
  389. protected void onCreate(Bundle savedInstanceState) {
  390. super.onCreate(savedInstanceState);
  391. setContentView(R.layout.activity_main);
  392.  
  393. buttonStartReceiving = (Button) findViewById(R.id.btn_start_receiving);
  394. buttonStopReceiving = (Button) findViewById(R.id.btn_stop_receiving);
  395. textViewDataFromClient = (TextView) findViewById(R.id.tv_data_from_client);
  396.  
  397. buttonStartReceiving.setOnClickListener(this);
  398. buttonStopReceiving.setOnClickListener(this);
  399.  
  400. }
  401.  
  402. private void startServerSocket() {
  403.  
  404. Thread thread = new Thread(new Runnable() {
  405.  
  406. private String stringData = null;
  407.  
  408. @Override
  409. public void run() {
  410.  
  411. byte[] msg = new byte[1000];
  412. DatagramPacket dp = new DatagramPacket(msg, msg.length);
  413. DatagramSocket ds = null;
  414. try {
  415. ds = new DatagramSocket(9001);
  416. //ds.setSoTimeout(50000);
  417. ds.receive(dp);
  418.  
  419. stringData = new String(msg, 0, dp.getLength());
  420. updateUI(stringData);
  421.  
  422. String msgToSender = "Bye Bye ";
  423. dp = new DatagramPacket(msgToSender.getBytes(), msgToSender.length(), dp.getAddress(), dp.getPort());
  424. ds.send(dp);
  425.  
  426. } catch (IOException e) {
  427. e.printStackTrace();
  428. } finally {
  429. if (ds != null) {
  430. ds.close();
  431. }
  432. }
  433. }
  434.  
  435. });
  436. thread.start();
  437. }
  438.  
  439. private void updateUI(final String stringData) {
  440.  
  441. handler.post(new Runnable() {
  442. @Override
  443. public void run() {
  444.  
  445. String s = textViewDataFromClient.getText().toString();
  446. if (stringData.trim().length() != 0)
  447. textViewDataFromClient.setText(s + "n" + "From Client : " + stringData);
  448. }
  449. });
  450. }
  451.  
  452. @Override
  453. public void onClick(View v) {
  454.  
  455. switch (v.getId()) {
  456.  
  457. case R.id.btn_start_receiving:
  458.  
  459. startServerSocket();
  460.  
  461. buttonStartReceiving.setEnabled(false);
  462. buttonStopReceiving.setEnabled(true);
  463. break;
  464.  
  465. case R.id.btn_stop_receiving:
  466.  
  467. //Add logic to stop server socket yourself
  468.  
  469. buttonStartReceiving.setEnabled(true);
  470. buttonStopReceiving.setEnabled(false);
  471. break;
  472. }
  473. }
  474. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement