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
- Socket通信
- Socket通信
- socket通信
- Socket通信
- Socket通信
- socket通信
- socket通信
- socket通信
- socket 通信
- socket通信
- SOCKET通信
- Socket通信
- 通信 socket
- socket 通信
- socket通信
- socket通信
- socket通信
- socket通信
- UVa11408 - Count DePrimes(线性筛法)
- android 线程研究一(AsyncTask源码深度剖析)
- IT人除了写代码,也要写文字
- wiki 1255 搭积木
- mysql编码选择注意事项
- socket通信
- cookie妙用1——頁面間傳值
- 杭电 2030 汉字统计 (汉字机内码 存储方式)
- HDU 2152 Fruit【带上下界母函数】
- ARM学习随笔(10)中断的学习
- poj_1144/uva_315/zoj_1311 Network(割點模板題)
- myeclipse一直停留在Loading workbench界面上的处理办法
- HDU-2112-最短路(map)
- 完全符合能量守恒,胡克定理的JavaScript弹簧振子(超简洁版,超越第一版!)