直接奔主题,come on~!

C# 服务端

代码:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Net.Sockets;using System.Net;using System.Threading;namespace WindowsFormsApplication1{    public partial class Form1 : Form    {        Socket ssk;        Socket_State ss;         public Form1()        {            InitializeComponent();            CheckForIllegalCrossThreadCalls = false;        }                private void start_Click(object sender, EventArgs e)        {            Thread thd = new Thread(new ThreadStart(mylisten));            thd.Start();        }        public void mylisten()        {                       ssk = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);            EndPoint s_en = new IPEndPoint(IPAddress.Any, 900);            ssk.Bind(s_en);            ssk.Listen(3);            listbox1.Items.Add("侦听成功");            while (true)            {            //这里是同步接收            Socket client_sk = ssk.Accept();            Socket_State ss = new Socket_State();            ss.workSocket = client_sk;            client_sk.BeginReceive(ss.buffer,0,Socket_State.BufferSize,SocketFlags.None,rec_endreceive,ss);                   }        }             public void rec_endreceive(IAsyncResult ar)        {            ss = (Socket_State)ar.AsyncState;            Socket sk = ss.workSocket;            int i = sk.EndReceive(ar);            if (i > 0)            {                           ss.sb.Append(Encoding.ASCII.GetString(ss.buffer, 0, i));                         var content = ss.sb.ToString();                if (content.IndexOf("#EOF#") > -1)                {                    content = content.Replace("#EOF#", "").Trim();                    listbox1.Items.Add(content);                    Thread th1 = new Thread(new ThreadStart(message_send));                    th1.Start();                                  }                else                {                                 sk.BeginReceive(ss.buffer,0,Socket_State.BufferSize,SocketFlags.None,rec_endreceive,ss);                }            }        }        public void message_send()        {            Send(ss.workSocket, "successfull");        }        private static void Send(Socket handler, String data)        {                      byte[] byteData = Encoding.ASCII.GetBytes(data);            handler.BeginSend(byteData, 0, byteData.Length, 0,            new AsyncCallback(SendCallback), handler);        }        private static void SendCallback(IAsyncResult ar)        {                      Socket handler = (Socket)ar.AsyncState;            int bytesSent = handler.EndSend(ar);            MessageBox.Show("成功发送");            handler.Shutdown(SocketShutdown.Both);            handler.Close();        }    }}

代码二:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Net;using System.Net.Sockets;namespace WindowsFormsApplication1{    class Socket_State    {                   // Client  socket.            public Socket workSocket = null;            // Size of receive buffer.            public const int BufferSize = 1024;            // Receive buffer.            public byte[] buffer = new byte[BufferSize];            // Received data string.            public StringBuilder sb = new StringBuilder();        }}

android 客户端

代码:

package socket_test.Jason;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.net.*;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.net.*;import javax.net.ssl.HandshakeCompletedListener;public class Socket_testActivity extends Activity {private EditText send_data_txt;private EditText result_data_txt;private Button submit_btn;    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        findAll();        bind();    }        public void findAll()    {    send_data_txt=(EditText) this.findViewById(R.id.send_date_txt);    result_data_txt=(EditText) this.findViewById(R.id.result_data_txt);    submit_btn=(Button) this.findViewById(R.id.submit_btn);    }        public void bind()    {        submit_btn.setOnClickListener(mylistener);    }            Handler hd=new Handler()    {@Overridepublic void handleMessage(Message msg) {// TODO Auto-generated method stub//super.handleMessage(msg);if(msg.what==123){result_data_txt.setText(msg.obj.toString());}}        };        private View.OnClickListener mylistener=new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubif(v.getId()==R.id.submit_btn){    Thread thd=new Thread(new send_message());    thd.start();}}};class send_message implements Runnable{@Overridepublic void run() {// TODO Auto-generated method stub try {    String mesg=send_data_txt.getText().toString()+"#EOF#";Socket sk=new Socket("192.168.1.202", 900);//向服务器发送信息PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(sk.getOutputStream())),true);    String haha= new String(mesg.getBytes(),"ASCII");out.println(mesg);//接受服务器的信息InputStream is=sk.getInputStream();byte[] bytestring= new byte[1024];String jason1=null;while(is.read(bytestring, 0, bytestring.length)!=-1){String jason2=new String(bytestring,"ASCII");jason1+=jason2;}jason1=jason1.replace("null", "").trim();Message msg=hd.obtainMessage(123, jason1);hd.sendMessage(msg);is.close();out.close();sk.close();} catch (UnknownHostException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} }}}
                                                                                            

更多相关文章

  1. 《第一行代码--Android》 Git时间
  2. android 笔记 --- Android-图片透明度处理代码
  3. android时间对话框的核心代码
  4. Android 代码实现按钮 按下弹起事件
  5. android post方式传递参数并获取返回数据代码
  6. Android 再按一次返回键退出 代码
  7. Android设备的显示信息
  8. Android中发短信的代码
  9. android studio 代码混淆

随机推荐

  1. 疯狂Android讲义(第2版)
  2. android Alertdialog.Bulider简单使用
  3. [Android]Android(安卓)achartengine统计
  4. Android属性之android:priority
  5. Android四大布局
  6. Android动画学习笔记-Android(安卓)Anima
  7. Android(安卓)ListView 去除底色、选中色
  8. android视频播放库
  9. Android项目开发一
  10. Android(安卓)测试技能树