socket通信

来源:互联网 发布:西门子802d编程 编辑:程序博客网 时间:2024/06/05 03:23

说明:弄了好久才弄到,分享下

1,客户端

package com.lzq.socketclient;

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.net.Socket;import java.net.UnknownHostException;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class SocketClientActivity extends Activity {        //声明变量    private EditText etMsg;    private TextView tvMsg;    private Button btnSend;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        //获取控件        etMsg = (EditText)this.findViewById(R.id.etMsg);        tvMsg = (TextView)this.findViewById(R.id.tvMsg);        btnSend = (Button)this.findViewById(R.id.btnSend);                //给按钮注册单击事件        btnSend.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                try {                    //创建Socket连接对象 (ip地址,端口)                    Socket socket = new Socket("192.168.1.65",54321);                    //PrintWriter发送对象                    PrintWriter printWriter = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(),"UTF-8"),true);                    //向服务器发送信息                    printWriter.println(etMsg.getText());                                        //Bufferedreader 接收服务器的数据对象                    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream(),"UTF-8"));                    //接受服务器端数据                    String serverContext = bufferedReader.readLine();                    //TextView设置文本                    tvMsg.setText(serverContext);                    //关闭服务之间的连接                    printWriter.close();                    bufferedReader.close();                    socket.close();                } catch (UnknownHostException e) {                    e.printStackTrace();                } catch (IOException e) {                    e.printStackTrace();                }                            }        });    }}
2,服务器

package com.lzq.socketserver;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class MyServer implements Runnable {    @Override    public void run() {        try {            while(true)            {                //创建服务端ServerSocket对象                ServerSocket serverSocket =  new ServerSocket(54321);                //ServerSocket.accept()方法用于等待客服连接                Socket socket = serverSocket.accept();                //接受客服端数据BufferedReader对象                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream(),"UTF-8"));                //获取客服端数据                String context = bufferedReader.readLine();                System.out.println("客服端数据:"+context);                //给客服端发送数据                PrintWriter printWriter = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(),"UTF-8"),true);                printWriter.println("服务端已经收到:’"+context+"‘数据!");                //关闭服务连接                serverSocket.close();            }        } catch (IOException e) {            e.printStackTrace();        }    }}



0 0
原创粉丝点击