1,首先添加两个windows窗体项目,一个作为服务端server,一个作为客户端Client
  2,然后添加服务端代码,添加命名空间,界面上添加TextBox控件
  using System.Net;
  using System.Net.Sockets;
  3,FormLoad方法添加代码
  private void Form1_Load(object sender, EventArgs e)
  {
  IPEndPoint epServer = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 7878);//IP地址和端口号
  Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//定义socket
  socket.Bind(epServer);//绑定
  socket.Listen(10);//监听
  socket.BeginAccept(new AsyncCallback(RecVing), socket);//异步接收,回调方法为RecVing
  }
  4,添加回调方法代码
  private void RecVing(IAsyncResult rec_socket)
  {
  string cmdstr = "";
  Socket sc = (Socket)rec_socket.AsyncState;
  Socket socket = sc.EndAccept(rec_socket);
  byte[] bytes = new byte[1024];
  int i = socket.Receive(bytes);
  cmdstr = Encoding.UTF8.GetString(bytes, 0, i);
  showstrs(cmdstr);
  sc.BeginAccept(new AsyncCallback(RecVing), sc);
  }
  5,添加showstrs方法,
  定义委托private delegate void shixudong_invoke(string invokefun);
  private void showstrs(string recv_strs)
  {
  if (recv_strs.Length != 0)
  {
  if (this.InvokeRequired)
  {
  shixudong_invoke invoke = new shixudong_invoke(showstrs);
  this.Invoke(invoke, (object)recv_strs);
  }
  else
  {
  textBox1.Text = recv_strs;
  }
  }
  }
  6,到此为止,服务端已经添加完毕
  7,客户端代码,首先跟服务端一样,添加命名空间,在界面上添加button事件
  private void button1_Click(object sender, EventArgs e)
  {
  IPEndPoint IPEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 7878);//IP,端口号
  Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  socket.BeginConnect(IPEndPoint, new AsyncCallback(Sending), socket);//回调方法Sending
  }
  8,添加回调方法,代码如下
  private void Sending(IAsyncResult rec_socket)
  {
  Socket socket = (Socket)rec_socket.AsyncState;
  try托福答案
  {
  if (socket.Connected)
  {
  byte[] msgBuff = Encoding.UTF8.GetBytes(textBox1.Text);
  socket.Send(msgBuff);
  //socket.Accept();
  }
  else
  {
  Console.WriteLine("Error!", "Error!");
  }
  }
  catch
  {
  Console.WriteLine("Error!", "Error!");
  }
  }
  9,到此为止,客户端代码已经完成,调试的时候先启动服务端,然后启动客户端

.net平台下socket异步通讯的更多相关文章

  1. .net平台下socket异步通讯(代码实例)

    你应该知道的.net平台下socket异步通讯(代码实例) 1,首先添加两个windows窗体项目,一个作为服务端server,一个作为客户端Client 2,然后添加服务端代码,添加命名空间,界面上 ...

  2. 你应该知道的.net平台下socket异步通讯(代码实例)

    1,首先添加两个windows窗体项目,一个作为服务端server,一个作为客户端Client 2,然后添加服务端代码,添加命名空间,界面上添加TextBox控件 using System.Net; ...

  3. C#上位机之—WinForm实现Socket异步通讯示例

    工作中常用到的一些知识点,总是用完就忘,第一次尝试用博客记录下来,以备后用: Socket通讯,Socket(套接字)是基于TCP/IP通讯方式的封装好的类,调用时需要添加下面的服务引用: using ...

  4. c++Socket 异步通讯

    在网络通讯中,由于网络拥挤或一次发送的数据量过大等原因,经常会发生交换的数据在短时间内不能传送完,收发数据的函数因此不能返回,这种现象叫做阻塞. Winsock对有可能阻塞的函数提供了两种处理方式:阻 ...

  5. Socket异步通讯

    1.可以通过多线程来解决(一会补上) 2.Socket在tcp/udp两种通信协议下的异步通信: 基于TCP的异步通信: BeginAccept方法和endeaccept方法 包含在System.Ne ...

  6. C# socket异步通讯

    Server: using System; using System.Net; using System.Net.Sockets; using System.Text; namespace TCP_S ...

  7. .net 平台下, Socket通讯协议中间件设计思路(附源码)

    .net 平台下,实现通讯处理有很多方法(见下表),各有利弊: 序号 实现方式 特点 1 WCF 优点:封装好,方便.缺点:难学,不跨平台 2 RocketMQ,SuperSocket等中间件 优点: ...

  8. .net平台下C#socket通信(中)

    上篇.net平台下C#socket通信(上)介绍了socket通信的基本原理及最基本的通信方式.本文在此基础上就socket通信时经常遇到的问题做一个简单总结,都是项目中的一些小问题,拿来此处便于下次 ...

  9. .net平台下C#socket通信(转)

    上篇.net平台下C#socket通信(上)介绍了socket通信的基本原理及最基本的通信方式.本文在此基础上就socket通信时经常遇到的问题做一个简单总结,都是项目中的一些小问题,拿来此处便于下次 ...

随机推荐

  1. JavaScript高级程序设计30.pdf

    第12章 DOM2和DOM3 DOM1级主要定义的是HTML和XML文档的底层结构.DOM2和DOM3则在这个结构的基础上引入了更多的交互能力,也支持更高级的XML特性 DOM2和DOM3级分为许多模 ...

  2. [SAM4N学习笔记]按键程序(查询方式)

    一.准备工作:      将上一节搭建的工程复制一份,命名为"5.key scanf".这一节主要讲如何使用SAM4N的GPIO输入功能,实现按键的输入. 二.程序编写:      ...

  3. ASP.NET中设置一个定时器来定时更新 转

    asp.net 定时器 比较少用,  中国红木网这是一个相当实用的功能,有了RSS博客镜像,就不需要在多处同时发布博客日志了.比如你同时在新浪上有自己的博客,又同时有自己的个人博客站点,那么你只需要在 ...

  4. [Spark] Pair RDD常见转化操作

    本篇博客中的操作都在 ./bin/pyspark 中执行. 对单个 Pair RDD 的转化操作 下面会对 Pair RDD 的一些转化操作进行解释.先假设我们有下面这些RDD(在pyspark中操作 ...

  5. 转载-Linux下搭建VPN服务器(CentOS、pptp)

    转自:http://www.cnblogs.com/sixiweb/archive/2012/11/20/2778732.html 搭建过程参考这篇文章 先说我搭建过程中出现的问题吧: 按照 教程搭建 ...

  6. Android项目svn代码管理问题[转]

    用svn控制版本,svn本身是不会识别哪些该传,哪些不该传,这就导致有些关于路径的东西(比如拓展jar的路径)也被上传了,而当别人下载后,那个路径对于这个人可能完全不存在,项目编译就会出问题.用ecl ...

  7. FastDFS、nginx配置手记

    第一部分   FastDFS介绍 1.FastDFS是什么 FastDFS是一款类Google FS的开源分布式文件系统,它用纯C语言实现,支持Linux.FreeBSD.AIX等UNIX系统.它只能 ...

  8. 直接通过浏览器打开Android App 应用

    点击浏览器中的URL链接,启动特定的App. 首先做成HTML的页面,页面内容格式例如以下: <a href="[scheme]://[host]/[path]?[query]&quo ...

  9. Windows 下启动Apache服务(转)

    Win下apache出现问题:“No services installed”安装完apache之后(不是按照默认路径安装的,我的是 D:\ )右下方那个小羽毛图标是没有启动的,左键不好使,而且提示“N ...

  10. QTreeWidget实现动态加载本地文件系统

    QT之前没有接触过,之所以做这个也是被临时拉去GoldenFarm组去做渲染的客户端:还别说,虽说是第一次,做出来的这个东西倒是挺让我满意的.先说一下具体需求,然后再上图吧: 渲染时在选择场景文件时, ...