直接奔主题,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. */@Overridepublic 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 stubtry {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();} }}}

 

转载于:https://www.cnblogs.com/jason-jo/archive/2011/09/08/2171642.html

第三篇 (.net socket 与 android )相关推荐

  1. Gradle for Android 第三篇( 依赖管理 )

    Gradle for Android 第三篇( 依赖管理 ) 依赖管理是Gradle最闪耀的地方,最好的情景是,你仅仅只需添加一行代码在你的build文件,Gradle会自动从远程仓库为你下载相关的j ...

  2. android 界面组件,安卓开发学习周第三篇——Android中的UI组件

    原标题:安卓开发学习周第三篇--Android中的UI组件 在Android APP中,所有的用户界面元素都是由View和ViewGroup的对象构成的.View是绘制在屏幕上的用户能与之交互的一个对 ...

  3. android远程打电话,Android打电话功能 Android实战教程第三篇之简单实现拨打电话功能...

    想了解Android实战教程第三篇之简单实现拨打电话功能的相关内容吗,杨道龙在本文为您仔细讲解Android打电话功能的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Android拨打电话 ...

  4. <Android开发> Android vold - 第三篇 vold 的NetLinkManager类简介

    本系列主要介绍 Android vold,分为以下篇章 <Android开发> Android vold - 第一篇 vold前言简介 <Android开发> Android ...

  5. android之view重绘,跟着郭大侠一步步深入了解View第三篇之Android视图状态及重绘流程分析...

    作为对View进行学习的第三篇文章,本文将讲解一下视图状态以及重绘方面的知识. 相信大家在平时使用View的时候都会发现它是有状态的,比如说有一个按钮,普通状态下是一种效果,但是当手指按下的时候就会变 ...

  6. Android——天气预报(酷欧天气)(第三篇)

    **第三篇** 接下来我们在之前创立好的gson包下建立6个实体类分别为:AQI,Basic,Forecast,Now,Suggestion,Weather如下: 为了解析GSON返回来的数据 AQI ...

  7. 《Head First Java》的思考总结:第三篇

    前言: 今天要分享的是关于 <Head First Java>这本书的读后感,这本书有点小厚差不多有七百页左右,所以我花了几乎整个国庆的时间去阅读,学习.读完之后发现,受益颇多.正如书名所 ...

  8. Python:第三篇【Python】实用库与框架-关东升-专题视频课程

    Python:第三篇[Python]实用库与框架-612人已学习 课程介绍         本课程包括6章.内容包括Python数据交换格式,Python数据库编程,Python网络编程,wxPyth ...

  9. Android studio 使用心得(三)—从Eclipse迁移到Android studio

    断断续续的也算是把eclipse上的代码成功迁移到android studio上来了,现在,我同事继续用eclipse,我用android studio,svn上还是之前eclipse的项目,迁移成功 ...

  10. java安卓开发 项目实例_Java系列--第七篇 基于Maven的Android开发实战项目

    本篇是基于<Android应用案例开发大全,吴亚峰等著>的项目开发实例源码,其中有些图片,我做了一些修改,用于个人学习,请勿用于商业. 1, 日程管理专家 mvn archetype:ge ...

最新文章

  1. JS中的prototype、__proto__与constructor
  2. 【推荐】一个不错的密码强度测试网站
  3. 小程序自动化测试--测试3
  4. python中的json_简单介绍Python中的JSON使用
  5. java使用教程——组件及事件处理——窗口(设置窗口的颜色和背景)
  6. python 列表的推导器和内置函数
  7. html图片拼接出现留白,关于img标签周围留白的问题
  8. matlab卷积完为什么要归一化,为什么要进行反归一化处理,而且反归一化什么意思?...
  9. 「TJOI 2013」攻击装置
  10. 190521每日一句
  11. python的flask实现接口_python+flask:实现POST接口功能
  12. C#使用DirectoryEntry类操作Windows帐户
  13. 「Python海龟画图」利用海龟画笔绘制奥运五环
  14. 图灵奖设立50周年,向伟大的计算机科学家们致敬
  15. java tld tag_自定义标签tag(jsp编写)和tld(java编写)的使用方法
  16. VR中多模式异步协作的挑战和设计考虑因素
  17. 实操:sql注入国外xx网站
  18. ROS入门之Publisher的创建
  19. html手抄报怎么制作软件,怎么制作Word电子小报?
  20. java中package_java 中 package 是什么?

热门文章

  1. 简述数学建模的过程_数学建模研究过程指导:从高中数学体会数学概貌和数学建模...
  2. mysql中如何设置过滤器_mysql – 使用计数器实现过滤器
  3. python隐藏部分代码_python隐藏类中属性的3种实现方法
  4. 的函数原型_相信我,跟着这个文章学习JS原型,你一定能看得懂
  5. linux中更新python_linux下面升级 Python版本并修改yum属性信息
  6. oracle修改c root,从新发现Oracle太美之root.sh
  7. 关于使用JAVA中JDK安装和在命令行中编译和运行程序的一些总结
  8. poj3041--Asteroids(二分匹配)[将矩阵行列转化为边]
  9. GitHub聊天通信开源UI框架stfalcon-studio/ChatKit使用教程
  10. oracle dbms_output.put不输出