文档章节

Android Client 与 C# Server 的Socket通信

短短的歼击机
 短短的歼击机
发布于 2014/08/25 11:06
字数 352
阅读 971
收藏 3

C# Socket Server

 

1.建立C# SocketServer

 

       

 1 private void ServerStart()
 2          {
 3              //创建IPEndPoint
 4              IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1234);
 5              //创建Socket实例
 6              server_Socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
 7              //绑定Socket与IPEndPoint
 8              server_Socket.Bind(ipep);
 9              //设置Socket收听模式
10              server_Socket.Listen(10);
11  
12             while (true)
13              {
14                  try
15                  {
16                      //接受Andorid信息
17                      client_Socket = server_Socket.Accept();
18                      client_Thread = new Thread(new ThreadStart(ReceiveAndroidData));
19                      client_Thread.Start();
20                  }
21                  catch (Exception ex)
22                  {
23                      MessageBox.Show("start error: " + ex.Message);
24                  }
25               
26             }
27          }

 

 

2.开启一个Theard,执行

       

1 server_Thread = new Thread(new ThreadStart(ServerStart));
2          server_Thread.Start();

 

 

3.介绍方法

 

       

private void ReceiveAndroidData()
         {
             bool keepalive = true;
             Socket socketclient = client_Socket;
             Byte[] buffer = new Byte[1024];
 
            //根据收听到的客户端套接字向客户端发送信息
             IPEndPoint clientep = (IPEndPoint)socketclient.RemoteEndPoint;
             lstServer.Items.Add("Andorid Client:" + clientep.Address + ""+clientep.Port);
             string str = "connect server----- ";
             byte[] data = new byte[1024];
             data = Encoding.ASCII.GetBytes(str);
             socketclient.Send(data, data.Length, SocketFlags.None);
 
            while (keepalive)
             {
                 //在套接字上接收客户端发送的信息
                 int buffer_lenght = 0;
                 try
                 {
                     buffer_lenght = socketclient.Available;
 
                    socketclient.Receive(buffer, 0, buffer_lenght, SocketFlags.None);
                     if (buffer_lenght == 0)
                         continue;
                 }
                 catch (Exception ex)
                 {
                     MessageBox.Show("receive error:" + ex.Message);
                     return;
                 }
                 clientep = (IPEndPoint)socketclient.RemoteEndPoint;
                 string strAndroid_CMD = System.Text.Encoding.ASCII.GetString(buffer).Substring(0, buffer_lenght);
 
                 //对根据strAndroid_CMD到数据库中查询值
                 

 

 

Android Client:

1. OnCreate方法中执行

 

 

try {
   Socket socket = new Socket("10.0.2.2", 1234);

    
   PrintWriter out = new PrintWriter(new BufferedWriter(
     new OutputStreamWriter(socket.getOutputStream())), true);
   out.println(cameraid);
  } catch (UnknownHostException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

 

代码很就简单

==================================

需要注意的是:

1.添加internet访问权限:<uses-permission android:name="android.permission.INTERNET" />。

2.127.0.0.1 IP被模拟器占用了,而本身PC的IP为10.0.2.2,如果本机测试的时候需要注意这一点。


© 著作权归作者所有

短短的歼击机

短短的歼击机

粉丝 82
博文 268
码字总数 269797
作品 0
武汉
高级程序员
私信 提问
高性能跨平台通信框架 HP-Socket v5.3.2 发布

项目主页 : http://www.oschina.net/p/hp-socket 开发文档 : http://www.docin.com/p-2079016612.html 下载地址 : https://github.com/ldcsaa/HP-Socket QQ Group: 75375912, 44636872 HP-So......

伤神小怪兽
2018/06/26
2.1K
2
5.4节呈献:HP-Socket v5.3.1 发布 — 支持 Android NDK

项目主页 : http://www.oschina.net/p/hp-socket 开发文档 : http://www.docin.com/p-2079016612.html 下载地址 : https://gitee.com/ldcsaa/HP-Socket QQ Group: 75375912, 44636872 HP-Soc......

伤神小怪兽
2018/05/04
1K
5
高性能跨平台网络通信框架 HP-Socket v5.4.1 发布

项目主页 : http://www.oschina.net/p/hp-socket 开发文档 : http://www.docin.com/p-2129383071.html 下载地址 : https://github.com/ldcsaa/HP-Socket QQ Group: 75375912, 44636872 HP-So......

伤神小怪兽
2018/09/05
1K
8
android socket各种通信

我已经试验成功: ps:模拟器做服务器,PC机做客户端。如果通过wifi连接的话直接访问IP就行,不用重定向。 PC访问模拟器用localhost即127.0.0.1, 模拟器 访问 模拟器用10.0.2.2 本人已成功运...

buleberry
2014/04/01
148
0
高性能跨平台网络通信框架 HP-Socket v5.4.2 发布

项目主页 : http://www.oschina.net/p/hp-socket 开发文档 : http://www.docin.com/p-2137713732.html 下载地址 : https://gitee.com/ldcsaa/HP-Socket HP-Socket提供以下几类组件,详细内容......

伤神小怪兽
2018/11/01
2K
16

没有更多内容

加载失败,请刷新页面

加载更多

OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
昨天
5
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
昨天
6
0
数据库中间件MyCat

什么是MyCat? 查看官网的介绍是这样说的 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵...

沉浮_
昨天
6
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
昨天
7
0
常用物流快递单号查询接口种类及对接方法

目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是...

程序的小猿
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部