C# Socket Server

1.建立C# SocketServer

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

2.开启一个Theard,执行

1server_Thread=newThread(newThreadStart(ServerStart));
2server_Thread.Start();

3.介绍方法

privatevoidReceiveAndroidData()
{
boolkeepalive=true;
Socketsocketclient=client_Socket;
Byte[]buffer=newByte[1024];

//根据收听到的客户端套接字向客户端发送信息
IPEndPointclientep=(IPEndPoint)socketclient.RemoteEndPoint;
lstServer.Items.Add("AndoridClient:"+clientep.Address+""+clientep.Port);
stringstr="connectserver-----";
byte[]data=newbyte[1024];
data=Encoding.ASCII.GetBytes(str);
socketclient.Send(data,data.Length,SocketFlags.None);

while(keepalive)
{
//在套接字上接收客户端发送的信息
intbuffer_lenght=0;
try
{
buffer_lenght=socketclient.Available;

socketclient.Receive(buffer,0,buffer_lenght,SocketFlags.None);
if(buffer_lenght==0)
continue;
}
catch(Exceptionex)
{
MessageBox.Show("receiveerror:"+ex.Message);
return;
}
clientep=(IPEndPoint)socketclient.RemoteEndPoint;
stringstrAndroid_CMD=System.Text.Encoding.ASCII.GetString(buffer).Substring(0,buffer_lenght);

//对根据strAndroid_CMD到数据库中查询值

Android Client:

1. OnCreate方法中执行

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


PrintWriter out =newPrintWriter(newBufferedWriter(
newOutputStreamWriter(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,如果本机测试的时候需要注意这一点。


更多相关文章

  1. Android 获取手机的厂商信息
  2. Android使用httpPost向服务器发送请求的方法
  3. 设置图片缩放方法失效 解决办法设置android:scaleType属性
  4. android 从SIM卡获取联系人信息
  5. Android分享到腾讯微博,信息,新浪微博等等,的实现方式
  6. android adb shell获取和设置IP相关信息
  7. XAMARIN Android获取WIFIMAC地址的方法
  8. 实时获取Android 各版本电量的统一方法

随机推荐

  1. Android使用Handler实现打地鼠游戏
  2. Android(安卓)报错:InflateException: Bin
  3. 详解Android中IntentService的使用方法
  4. [Unity][安卓]Unity Android SDK配置
  5. ActionBarSherlock中的搜索及SearchView
  6. 三分钟学会缓存工具DiskLruCache
  7. 如何生成 AAC ADTS 基本流与 Android Med
  8. 在android中button响应的两种方式
  9. Android(安卓)Camera应用初探二
  10. 关于Gallery使用