当前位置:文档之家› Android开发Socket编程系列4——网络编程

Android开发Socket编程系列4——网络编程

Android开发Socket编程系列4——网络编程
Android开发Socket编程系列4——网络编程

本文介绍SOCKET 的服务端和客户端的开发,在本文中并没有使用异步来对数据进行接收。因为网上太多有关异步、存储客户端SOCKET的例子了,但是他们的代码都非常的多,非常的繁琐,所以这里就去掉了异步数据接收等。

首先介绍服务端:这里代码实现的是服务端打开后就等待客户端的连接,当客户端连接上后就接收消息,并发消息回去后马上关闭链接。

如果需要做类是聊天室软件的话需要加上“异步处理”

1.public class SocketServer

2.{

3. private ServerSocket mServerSocket;

4. private static final int SERVER_PORT = 6000; //端口

5. public SocketServer()

6. {

7. }

8. public boolean startServer()

9. {

10. boolean bRet = false;

11. try

12. {

13. //创建一个SOCKET 服务器

14. mServerSocket = new ServerSocket(SERVER_PORT);

15. bRet = true;

16. } catch (Exception e)

17. {

18. // TODO: handle exception

19. }

20. return bRet;

21. }

22.

23. public void recv()

24. {

25. try

26. {

27. Socket socket = mServerSocket.accept();

28. //拿到客户端的输入输出(读取,发送)

29. InputStream is = socket.getInputStream();

30. PrintWriter pw = new PrintWriter(socket.getOutputStream());

31. //这里读取客户端第一次发来的消息调试来看吧

32. byte buffer[] = new byte[1024];

33. int reCount = is.read(buffer);

34. String msgString = EncodingUtils.getString(buffer, "GB2312");

35.

36. //我们发回一个"aa"给客户端

37. pw.print("aa");

38. pw.flush();

39. //关掉这个连接

40. socket.close();

41. } catch (Exception e)

42. {

43. // TODO: handle exception

44. }

45. }

46.

47. public void close()

48. {

49. try

50. {

51. mServerSocket.close();

52. } catch (Exception e)

53. {

54. // TODO: handle exception

55. }

56. }

57.}

复制代码

客户端:

1.public class SocketClient

2.{

3. private Socket socket;

4. private InputStream mInputStream;

5. private PrintWriter mPrintWriter;

6. private static final String SERVER_IP = "192.168.1.24";

7. private static final int SERVER_PORT = 6000;

8.

9. public SocketClient()

10. {

11. }

12.

13. public boolean connection()

14. {

15. boolean bRet = false;

16. try

17. {

18. //创建一个客户端连接

19. InetAddress ia = InetAddress.getByName(SERVER_IP);

20. socket = new Socket(ia, SERVER_PORT);

21.

22. //获取这个客户端连接SOCKET的输入输出

23. mPrintWriter = new PrintWriter(socket.getOutputStream(), true);

24. mInputStream = socket.getInputStream();

25. bRet = true;

26. } catch (Exception e)

27. {

28. // TODO: handle exception

29. }

30. return bRet;

31. }

32. //发送消息

33. public void sendMsg(String msg)

34. {

35. mPrintWriter.print(msg);

36. mPrintWriter.flush();

37. }

38. //读取消息

39. public String readMsg()

40. {

41. String msgString = "";

42. try

43. {

44. byte buffer[] = new byte[1024];

45. int reCount = mInputStream.read(buffer);

46. msgString = EncodingUtils.getString(buffer, "GB2312");

47. } catch (Exception e)

48. {

49. // TODO: handle exception

50. }

51.

52. return msgString;

53. }

54.

55.

56. public void close()

57. {

58. try

59. {

60. socket.close();

61. } catch (Exception e)

62. {

63. // TODO: handle exception

64. }

65. }

66.}

复制代码

主:

1.private android.view.View.OnClickListener btnClickListener = new

android.view.View.OnClickListener()

2. {

3.

4. @Override

5. public void onClick(View v)

6. {

7. int id = v.getId();

8. switch (id)

9. {

10. case R.id.btn:

11. {

12. SocketClient socketClient = new SocketClient();

13. socketClient.connection();

14. socketClient.sendMsg("123");

15. socketClient.sendMsg("123");

16. socketClient.sendMsg("123");

17. socketClient.sendMsg("123");

18. String r = socketClient.readMsg();

19. socketClient.close();

20. Toast.makeText(SocketActivity.this, r, Toast.LENGTH_LONG).show();

21. }

22. break;

23. case R.id.btn_server:

24. {

25. SocketServer socketServer = new SocketServer();

26. socketServer.startServer();

27. socketServer.recv();

28. socketServer.close();

29. }

30. break;

31. default:

32. break;

33. }

34. }

35. }

复制代码

相关主题
文本预览
相关文档 最新文档