Android与java和.NET通信

Android客户端:

package com.creative.SocketClient;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.Socket;

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;

public class SocketClientActivity extends Activity

{

       // 设置服务器IP和端口

       private static final String SERVERIP        = "192.168.1.101";

       private static final int    SERVERPORT      = 12345;

       private static Thread       _thread         = null;

       private Socket                                _socket                    = null;

       private BufferedReader                _bufferedReader        = null;

       private static PrintWriter  _printWriter    = null;

       private String              _message        = "";

       

   @Override

   public void onCreate(Bundle savedInstanceState)

   {

       super.onCreate(savedInstanceState);

       setContentView(R.layout.main);

       

       final EditText editText = (EditText)findViewById(R.id.editText01);

       

       Button connectBtn = (Button)findViewById(R.id.connectBtn);

       Button sumbitBtn  = (Button)findViewById(R.id.sumbitBtn);

       

       // 连接服务器

       connectBtn.setOnClickListener(new OnClickListener()

       {

                       @Override

                       public void onClick(View v)

                       {

                               try

                               {                        

                                       // 连接服务器

                                       _socket = new Socket(SERVERIP, SERVERPORT);        

                                       // 取得输入/输出流

                                       _bufferedReader = new BufferedReader(new InputStreamReader(_socket.getInputStream(), "GB2312"));

                                       _printWriter    = new PrintWriter(_socket.getOutputStream(), true);  

                               }

                               catch (Exception e)

                               {

                                       System.out.println("Connect is failed!");

                               }

                       }});

       

       // 发送信息

       sumbitBtn.setOnClickListener(new OnClickListener()

       {

                       @Override

                       public void onClick(View v)

                       {

                               String msg = editText.getText().toString();

                                       

                               sendMessage(msg);

                       }});

       

               _thread = new Thread(_runnable);

               _thread.start();

   }

   

   // 发送信息到服务器

   public void sendMessage(String message)

       {

               try

               {

                       System.out.println(message);

                       // 发送信息给服务器

                   _printWriter.print(message);

                   _printWriter.flush();

               }

               catch (Exception e)

               {

               }

       }

   

   // 监听服务器发来的消息

       private Runnable _runnable = new Runnable()

       {

               public void run()

               {

                       while(true)

                       {

                               try

                               {

                                       if((_message = _bufferedReader.readLine()) != null)

                                       {

                                               // 发送消息

                                               _handler.sendMessage(_handler.obtainMessage());

                                       }

                               }

                               catch (Exception e)

                               {

                               }

                       }

               }

       };

       

       Handler        _handler = new Handler()

       {                                                                                

                 public void handleMessage(Message msg)                                                                                

                 {                                                                                        

                         super.handleMessage(msg);        

                         

                         // 刷新信息                                                                                        

                         try                                                                                      

                         {        

                                 // 输出接受到的数据

                                 System.out.println(_message);

                         }                                                                                        

                         catch (Exception e)                                                                                        

                         {                                                                                                                                                                                                                                                        

                         }                                                                                

                 }                                                                        

        };

}

JAVA服务器端:

package com.creative.SocketClient;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.Socket;

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;

public class SocketClientActivity extends Activity

{

       // 设置服务器IP和端口

       private static final String SERVERIP        = "192.168.1.101";

       private static final int    SERVERPORT      = 12345;

       private static Thread       _thread         = null;

       private Socket                                _socket                    = null;

       private BufferedReader                _bufferedReader        = null;

       private static PrintWriter  _printWriter    = null;

       private String              _message        = "";

       

   @Override

   public void onCreate(Bundle savedInstanceState)

   {

       super.onCreate(savedInstanceState);

       setContentView(R.layout.main);

       

       final EditText editText = (EditText)findViewById(R.id.editText01);

       

       Button connectBtn = (Button)findViewById(R.id.connectBtn);

       Button sumbitBtn  = (Button)findViewById(R.id.sumbitBtn);

       

       // 连接服务器

       connectBtn.setOnClickListener(new OnClickListener()

       {

                       @Override

                       public void onClick(View v)

                       {

                               try

                               {                        

                                       // 连接服务器

                                       _socket = new Socket(SERVERIP, SERVERPORT);        

                                       // 取得输入/输出流

                                       _bufferedReader = new BufferedReader(new InputStreamReader(_socket.getInputStream(), "GB2312"));

                                       _printWriter    = new PrintWriter(_socket.getOutputStream(), true);  

                               }

                               catch (Exception e)

                               {

                                       System.out.println("Connect is failed!");

                               }

                       }});

       

       // 发送信息

       sumbitBtn.setOnClickListener(new OnClickListener()

       {

                       @Override

                       public void onClick(View v)

                       {

                               String msg = editText.getText().toString();

                                       

                               sendMessage(msg);

                       }});

       

               _thread = new Thread(_runnable);

               _thread.start();

   }

   

   // 发送信息到服务器

   public void sendMessage(String message)

       {

               try

               {

                       System.out.println(message);

                       // 发送信息给服务器

                   _printWriter.print(message);

                   _printWriter.flush();

               }

               catch (Exception e)

               {

               }

       }

   

   // 监听服务器发来的消息

       private Runnable _runnable = new Runnable()

       {

               public void run()

               {

                       while(true)

                       {

                               try

                               {

                                       if((_message = _bufferedReader.readLine()) != null)

                                       {

                                               // 发送消息

                                               _handler.sendMessage(_handler.obtainMessage());

                                       }

                               }

                               catch (Exception e)

                               {

                               }

                       }

               }

       };

       

       Handler        _handler = new Handler()

       {                                                                                

                 public void handleMessage(Message msg)                                                                                

                 {                                                                                        

                         super.handleMessage(msg);        

                         

                         // 刷新信息                                                                                        

                         try                                                                                      

                         {        

                                 // 输出接受到的数据

                                 System.out.println(_message);

                         }                                                                                        

                         catch (Exception e)                                                                                        

                         {                                                                                                                                                                                                                                                        

                         }                                                                                

                 }                                                                        

        };

}

.NET服务器端:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Net;

using System.Net.Sockets;

namespace TCPServer

{

   class Program

   {

       static void Main(string[] args)

       {

           // 接收到的数据

           int receive;

           // 定义数据缓冲区

           byte[] date = new byte[1024];

           // 设置终端连接,接收任意请求的IP地址客户终端

           IPEndPoint MyIpEndpoint = new IPEndPoint(IPAddress.Any, 12345);

           // 新建一个服务器套接字

           Socket MySocket = new Socket(AddressFamily.InterNetwork,

                                        SocketType.Stream,

                                        ProtocolType.Tcp);

           // 绑定服务端套接字

           MySocket.Bind(MyIpEndpoint);

           // 监听

           MySocket.Listen(10);

           Console.WriteLine("等待Android客户端程序的连接...");

           // 获取客户端套接字

           Socket Client = MySocket.Accept();

           // 获取客户端终点

           IPEndPoint ClientEndPoint = (IPEndPoint)Client.RemoteEndPoint;

           // 输出连接信息

           Console.WriteLine("Connect with {0} port {1}",

                              ClientEndPoint.Address,

                              ClientEndPoint.Port.ToString());

           // 将要发送到客户端的信息进行编码

           date = Encoding.ASCII.GetBytes("Welcome to my Server");

           // 发送信息到客户端

           Client.Send(date, date.Length, SocketFlags.None);

           // 如果接收的信息长度为0,则自动退出循环

           while (true)

           {

               try

               {

                   receive = Client.Receive(date);

                   if (receive == 0)

                   {

                       break;

                   }

                   // 对收到的字符进行编码

                   string ReceiveString = Encoding.UTF8.GetString(date, 0, receive);

                   // 打印接受到的指令信息

                   Console.WriteLine(ReceiveString);

                   // 发送信息到客户端

                   Client.Send(date, receive, SocketFlags.None);

               }

               catch

               {

               }

           }

           Console.WriteLine("DisConnected with {0}", ClientEndPoint.Address);

           Client.Close();

           MySocket.Close();

       }

   }

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值