当前位置:Gxlcms > PHP教程 > socket使用相关

socket使用相关

时间:2021-07-01 10:21:17 帮助过:9人阅读

在一个练习小项目中学习到的




  1. package com.sdut.edu.tools;
  2. import java.io.BufferedWriter;
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.io.OutputStreamWriter;
  6. import java.io.PrintWriter;
  7. import java.net.InetSocketAddress;
  8. import java.net.Socket;
  9. import java.net.SocketAddress;
  10. import java.net.SocketException;
  11. import java.util.Scanner;
  12. import android.app.ActivityManager;
  13. import android.app.AlertDialog;
  14. import android.content.Context;
  15. import android.content.DialogInterface;
  16. import android.util.Log;
  17. public class ConnectServer {
  18. public String connectServer(String str) throws SocketException,IOException
  19. {//获得从服务器的响应字符串
  20. // TODO Auto-generated method stub
  21. String result = null;
  22. StringBuffer tempStr=new StringBuffer();//最终返回的结果
  23. // try{
  24. int c=0;
  25. //根据服务器的IP和端口号创建一个socket对象,建立与服务器的连接
  26. Socket socket=new Socket();
  27. //Socket的构造方法,
  28. socket.connect(new InetSocketAddress("192.168.0.189",4444),4000);
  29. //接收从服务器获得的数据额对象
  30. // if(socket.getRemoteSocketAddress()==null)
  31. // {
  32. //
  33. // }
  34. //socket.connect(remoteAddr);
  35. //BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream(),"utf-8"),10000);
  36. InputStream is=socket.getInputStream(); //接收数据的转码问题
  37. Scanner in=new Scanner(is);
  38. //根据已经建立的socket创建PrintWriter对象,并通过这个对象将信息发送给服务器。
  39. PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),"utf-8")),true);
  40. //消息发送
  41. out.println(str);
  42. Log.d("ListAdapter_getvediourl_isConnected",socket.isConnected()+"");
  43. //判断连接超时
  44. if(socket.isConnected())//判断客户端与服务器端的连接,接收响应的字符串
  45. {
  46. while(in.hasNextLine())
  47. {
  48. result=in.nextLine();
  49. tempStr.append(result);
  50. System.out.println(tempStr);
  51. }
  52. }
  53. else
  54. {
  55. System.out.println("连接服务超时");
  56. }
  57. out.close();
  58. in.close();
  59. socket.close();//完成后。关闭socket
  60. // }catch(SocketException e)
  61. // {
  62. // return "-1";
  63. // //System.out.println("连接失败");
  64. // //e.printStackTrace();
  65. // }catch(IOException e){
  66. // return "-2";
  67. // }
  68. return tempStr.toString();
  69. }
  70. }

人气教程排行