Android 网络编程基础之简单聊天程序
2015-05-15 11:42
567 查看
前一篇讲了Android的网络编程基础,今天写了一个简单的聊天程序分享一下
首先是服务端代码:
启动服务端的代码如下:
以下是客户端的代码:
首先是服务端代码:
package com.jiao.socketdemo; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.ServerSocket; import java.net.Socket; public class ChatServer extends Thread { private ServerSocket server = null; private static final int PORT = 5550; private BufferedWriter writer; private BufferedReader reader; public ChatServer() throws IOException { CreateSocket();//初始化socket } @Override public void run() { Socket client; String txt; try { while (true) { // 获取应答消息 client = ResponseSocket(); while (true) { // 接受客户端信息 txt = ReceiveMsg(client); System.out.println("客户端发来的消息:" + txt); SendMsg(client, txt); if (true) break; } CloseSocket(client); } } catch (Exception e) { // TODO: handle exception } } //关闭连接 private void CloseSocket(Socket client) throws IOException { reader.close(); writer.close(); client.close(); } //封装发送消息的方法 private void SendMsg(Socket socket, String Msg) throws IOException { writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); writer.write(Msg + "\n"); writer.flush(); } //封装接受消息的方法 private String ReceiveMsg(Socket socket) throws IOException { reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); String txt = reader.readLine(); return txt; } //接受消息 private Socket ResponseSocket() throws IOException { Socket client = server.accept(); return client; } //初始化socket private void CreateSocket() throws IOException { server = new ServerSocket(PORT, 100); } }
启动服务端的代码如下:
// 创建聊天服务器 ChatServer chatserver = new ChatServer(); // 检测服务器是否已经启动,如果没有则启动服务器 if (chatserver != null) { chatserver.start(); }
以下是客户端的代码:
package com.example.socketclient; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.Socket; import java.net.UnknownHostException; import android.app.Activity; import android.os.Bundle; public class MainActivity extends Activity { public static int SERVER_PORT = 5550; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); new Thread() { public void run() { message(); } }.start(); } private void message() { try { Socket client = RequestSocket("这里是服务器的IP", SERVER_PORT); SendMsg(client, "client send"); String txt = ReceiveMsg(client); System.out.println("服务端返回数据:" + txt); } catch (Exception e) { } }; // 客户端获取消息类 private Socket RequestSocket(String host, int port)throws UnknownHostException, IOException { Socket socket = new Socket(host, port); return socket; } // 客户端发送消息类 private void SendMsg(Socket socket, String msg) throws IOException { // 将要发送的消息写入Buffer 中 BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); // 格式转换 writer.write(msg.replace("\n", " ") + "\n"); // 刷新,发送 writer.flush(); } // 客户端接收消息 private String ReceiveMsg(Socket socket) throws IOException { // 写入读Buffer 中// 获取接收的消息到数据流中 BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); // 读取消息到字符串中 String Msg = reader.readLine(); // 以字符串的方式返回消息 return Msg; } }
相关文章推荐
- iPhone之网络编程初体验-简单的聊天程序
- 【Java网络编程】UDP协议实例——简单的在线聊天程序
- 黑马程序员_网络编程之简单的聊天程序
- Java基础---Java---网络编程---TCP的传输、客户端和服务端的互访、建立一个文本转换器、编写一个聊天程序
- Java基础---Java---网络编程---TCP的传输、客户端和服务端的互访、建立一个文本转换器、编写一个聊天程序
- 黑马程序员_Java基础_网络编程_UDP传输协议编程,控制台聊天程序
- 网络编程与多线程的应用--基于socket udp编写一个简单聊天程序
- [JavaWeb基础] 024.Socket编程之简单的聊天程序
- c#网络编程学习笔记02_Tcp编程(中)_简单的同步tcp聊天程序
- Java网络编程以及简单的聊天程序
- Java网络编程以及简单的聊天程序
- Java基础知识强化之网络编程笔记25:Android网络通信之 Future接口介绍(Java程序执行超时)
- Java网络编程基础(四)---基于TCP的简单聊天系统
- Java网络编程基础(六)— 基于TCP的NIO简单聊天系统
- 网络编程中简单的点对点聊天程序
- Java网络编程--简单聊天程序
- 网络编程之简单的多人聊天程序
- python socket编程 实现简单p2p聊天程序
- Linux网络编程之聊天程序(TCP协议之select)
- java 网络编程五 (仿QQ聊天程序)