手机与PC的网络协议(1)
手机与PC的网络协议(1)
现在我们用一台电脑做服务器,一部手机做客户端,来实现手机与电脑之间的通信啦。首先,异曲同工,在手机上建立客户端与在电脑上是差不多的,首先我们现在电脑上面建立服务器如下:
- package 手机与PC端通信;
- import java.io.IOException;
- import java.net.ServerSocket;
- import java.net.Socket;
- public class Server {
- public void setup(int port){
- try {
- //创建服务器
- ServerSocket host=new ServerSocket(port);
- System.out.println("通信端口"+port+"成功开启");
- while(true){
- //等待客户端访问
- Socket socket=host.accept();
- System.out.println("有人访问了");
- //把跟客户端交流的事情交给线程处理
- ServerThread st = new ServerThread(socket);
- //开启线程
- st.start();
- }
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- public static void main(String[] args){
- //传入端口号
- new Server().setup(8888);
- }
- }
接下来建立线程来处理socket得到的输入流以及输出流:
- package 手机与PC端通信;
- import java.io.DataInputStream;
- import java.io.DataOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.net.Socket;
- public class ServerThread extends Thread {
- private Socket socket;
- private DataOutputStream dos;
- public ServerThread(Socket socket){
- this.socket=socket;
- }
- public void run(){
- //得到网络连接socket得到的输出输入流
- try {
- //输入流
- InputStream input=socket.getInputStream();
- DataInputStream dis=new DataInputStream(input);
- //得到客户端的输出流
- dos=new DataOutputStream(socket.getOutputStream());
- //读取客户端发到服务端的字节
- while(true){
- int msgType=dis.readInt();
- int len=dis.readInt();
- byte[] bytes=new byte[len];
- dis.readFully(bytes);
- String content=new String(bytes,"GB2312");
- System.out.println("客户端说:"+content);
- //这里是发到客户端的
- String replyString = "服务器收到了("+content+")";
- bytes = replyString.getBytes("GB2312");
- //写进是文字 1
- dos.writeInt(1);
- //输出流写进字节长度
- dos.writeInt(bytes.length);
- //写进字节
- dos.write(bytes);
- //刷新
- dos.flush();
- }
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
这些内容在上节中都已经讲过,这里不做过多阐述
接下来就是重点内容啦,就是在Android中建立客户端,这里我们要使用带安卓插件的eclipse来编写
首先处理界面,我大概定义了一个textview来显示聊天内容,editText来进行输入框的角色,再者就是一个发送按钮,这样一个简单的聊天界面就已经完成了,如下,简洁的小界面,读者们可以自行美化界面哈:
最后记得绑定发送按钮到指定函数哦。
评论暂时关闭