Guest User

Untitled

a guest
Jun 23rd, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.04 KB | None | 0 0
  1. public class ServerThread extends Thread
  2. {
  3. @Override
  4. public void run()
  5. {
  6. socketForServer=null;
  7. try {
  8. serverSocket = new ServerSocket(SocketServerPORT);
  9.  
  10. while (true) {
  11. socketForServer = serverSocket.accept();
  12.  
  13. }
  14. } catch (IOException e) {
  15. // TODO Auto-generated catch block
  16. e.printStackTrace();
  17. } finally {
  18. if (socketForServer != null) {
  19. try {
  20. socketForServer.close();
  21. } catch (IOException e) {
  22. // TODO Auto-generated catch block
  23. e.printStackTrace();
  24. }
  25. }
  26. }
  27. }}
  28. public class FileTxThread extends Thread {
  29. Socket socket;
  30. FileTxThread(Socket socket){
  31. this.socket= socket;
  32. }
  33. @Override
  34. public void run() {
  35. ContentResolver cr = getContentResolver();
  36.  
  37. try {
  38. InputStream is = cr.openInputStream(uri);
  39. final Bitmap bitmap= MediaStore.Images.Media.getBitmap( ServerSocketThread.this.getContentResolver(),uri);
  40.  
  41. //converting bitmap to byte array
  42. byte[] bytes = null;
  43. ByteArrayOutputStream stream = new ByteArrayOutputStream();
  44. bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
  45. bytes = stream.toByteArray();
  46. bitmap.recycle();
  47. ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
  48. oos.writeObject(bytes);
  49. oos.flush();
  50.  
  51. socket.close();
  52.  
  53. } catch (FileNotFoundException e) {
  54.  
  55.  
  56. // TODO Auto-generated catch block
  57. e.printStackTrace();
  58. } catch (IOException e) {
  59. // TODO Auto-generated catch block
  60. e.printStackTrace();
  61. } finally {
  62. try {
  63. socket.close();
  64. deletePersistentGroups();
  65. disconnect();
  66. } catch (IOException e) {
  67. // TODO Auto-generated catch block
  68. e.printStackTrace();
  69. }
  70. }
  71.  
  72. }
  73. }
  74. private void deletePersistentGroups(){
  75. try {
  76. Method[] methods = WifiP2pManager.class.getMethods();
  77. for (int i = 0; i < methods.length; i++) {
  78. if (methods[i].getName().equals("deletePersistentGroup")) {
  79. // Delete any persistent group
  80. for (int netid = 0; netid < 32; netid++) {
  81. methods[i].invoke(SendOrReceive.mWifiP2pManager, SendOrReceive.mChannel, netid, null);
  82. }
  83. }
  84. }
  85. } catch(Exception e) {
  86. e.printStackTrace();
  87. }
  88. }
  89. public static void disconnect() {
  90. if (SendOrReceive.mWifiP2pManager != null && SendOrReceive.mChannel != null) {
  91. SendOrReceive.mWifiP2pManager.requestGroupInfo(SendOrReceive.mChannel, new WifiP2pManager.GroupInfoListener() {
  92. @Override
  93. public void onGroupInfoAvailable(WifiP2pGroup group) {
  94. if (group != null && SendOrReceive.mWifiP2pManager != null && SendOrReceive.mChannel != null
  95. && group.isGroupOwner()) {
  96. SendOrReceive.mWifiP2pManager.removeGroup(SendOrReceive.mChannel, new WifiP2pManager.ActionListener() {
  97.  
  98. @Override
  99. public void onSuccess() {
  100.  
  101. }
  102.  
  103. @Override
  104. public void onFailure(int reason) {
  105.  
  106. }
  107. });
  108. }
  109. }
  110. });
  111. }
  112. }
  113.  
  114. try {
  115. socket = new Socket(address, portNumber);
  116. File fileDir = new File(
  117. Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
  118. "LetsShare");
  119. if (fileDir.exists() == false) {
  120. fileDir.mkdirs();
  121. }
  122. File file = new File(fileDir, "test.jpg");
  123. file.createNewFile();
  124. InputStream is = socket.getInputStream();
  125. ObjectInputStream ois = new ObjectInputStream(is);
  126. FileOutputStream fos = null;
  127. byte[] bytes = null;
  128.  
  129. try {
  130. bytes = (byte[]) ois.readObject();
  131. } catch (ClassNotFoundException e) {
  132.  
  133. }catch (EOFException e)
  134. {
  135.  
  136. }
  137.  
  138. final Bitmap myBitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
  139. if(myBitmap==null){
  140. Client.this.runOnUiThread(new Runnable() {
  141.  
  142. @Override
  143. public void run() {
  144. Log.d("CONDITION","null");
  145. }
  146.  
  147. });}
  148. else{
  149. Client.this.runOnUiThread(new Runnable() {
  150.  
  151. @Override
  152. public void run() {
  153. Log.d("CONDITION","not null");
  154. }
  155.  
  156. });
  157.  
  158. }
  159.  
  160. try {
  161.  
  162. fos = new FileOutputStream(file);
  163. myBitmap.compress(Bitmap.CompressFormat.JPEG, 90, fos);
  164. fos.flush();
  165. fos.close();
  166. Client.this.runOnUiThread(new Runnable() {
  167.  
  168. @Override
  169. public void run() {
  170. Toast.makeText(Client.this,
  171. "Finished",
  172. Toast.LENGTH_LONG).show();
  173. }
  174. });
  175. scanMedia(file.toString());
  176. //File toSet = new File(file.toString());
  177. //imageView.setImageBitmap(BitmapFactory.decodeFile(toSet.getAbsolutePath()));
  178. } catch (Exception e) {
  179. Client.this.runOnUiThread(new Runnable() {
  180.  
  181. @Override
  182. public void run() {
  183. Toast.makeText(Client.this,
  184. "sorry",
  185. Toast.LENGTH_LONG).show();
  186. }
  187. });
  188. // TODO Auto-generated catch block
  189. e.printStackTrace();
  190. } finally {
  191. if (fos != null) {
  192. fos.close();
  193. }
  194. }
  195. socket.close();
  196. } catch (IOException e) {
  197. e.printStackTrace();
  198. final String eMsg = "Something wrong from client: " + e.getMessage();
  199. Client.this.runOnUiThread(new Runnable() {
  200.  
  201. @Override
  202. public void run() {
  203. Toast.makeText(Client.this,
  204. eMsg,
  205. Toast.LENGTH_LONG).show();
  206. }
  207. });
  208.  
  209. } finally {
  210. if (socket != null) {
  211. try {
  212. socket.close();
  213. disconnect();
  214. } catch (IOException e) {
  215. // TODO Auto-generated catch block
  216. e.printStackTrace();
  217. }
  218. }
  219. }
  220. }
  221.  
  222. try {
  223. bytes = (byte[]) ois.readObject();
  224. }
  225.  
  226. 13:37:56.690 2552-3273/com.example.hp.letsshare W/System.err: java.net.SocketException: Software caused connection abort
  227. 06-23 13:37:56.692 2552-3273/com.example.hp.letsshare W/System.err: at java.net.SocketInputStream.socketRead0(Native Method)
  228. at java.net.SocketInputStream.read(SocketInputStream.java:151)
  229. at java.net.SocketInputStream.read(SocketInputStream.java:120)
  230. at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2316)
  231. 06-23 13:37:56.693 2552-3273/com.example.hp.letsshare W/System.err: at java.io.ObjectInputStream$BlockDataInputStream.read(ObjectInputStream.java:2718)
  232. at java.io.ObjectInputStream$BlockDataInputStream.readFully(ObjectInputStream.java:2748)
  233. at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1688)
  234. at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1345)
  235. at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373)
  236. at com.example.hp.letsshare.Client$ClientThread.run(Client.java:150)
Add Comment
Please, Sign In to add comment