知识大全 C#Socket基本编程

Posted

篇首语:知道如何活用知识最重要,知道知识的来龙去脉次之,拥有知识再次之。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C#Socket基本编程相关的知识,希望对你有一定的参考价值。

C#Socket基本编程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  view plainprint?

  //Socket基本编程

  //服务端

  using System Net

  using System Net Sockets

  using System Text

  using System Threading

  Thread mythread

  Socket socket

  // 清理所有正在使用的资源

  protected override void Dispose( bool disposing )

  

  try

  

  socket Close() //释放资源

  mythread Abort ( ) //中止线程

  

  catch

  if( disposing )

  

  if (ponents != null)

  

  ponents Dispose()

  

  

  base Dispose( disposing )

  

  public static IPAddress GetServerIP()

  

  IPHostEntry ieh=Dns GetHostByName(Dns GetHostName())

  return ieh AddressList[ ]

  

  private void BeginListen()

  

  IPAddress ServerIp=GetServerIP()

  IPEndPoint iep=new IPEndPoint(ServerIp )

  socket=new Socket(AddressFamily InterNeork SocketType Stream ProtocolType Tcp)

  byte[] byteMessage=new byte[ ]

  this label Text=iep ToString()

  socket Bind(iep)

  // do

  while(true)

  

  try

  

  socket Listen( )

  Socket newSocket=socket Accept()

  newSocket Receive(byteMessage)

  string sTime = DateTime Now ToShortTimeString ( )

  string msg=sTime+ + Message from

  msg+=newSocket RemoteEndPoint ToString()+Encoding Default GetString(byteMessage)

  this listBox Items Add(msg)

  

  catch(SocketException ex)

  

  this label Text+=ex ToString()

  

  

  // while(byteMessage!=null)

  

  //开始监听

  private void button _Click(object sender System EventArgs e)

  

  try

  

  mythread = new Thread(new ThreadStart(BeginListen))

  mythread Start()

  

  catch(System Exception er)

  

  MessageBox Show(er Message 完成 MessageBoxButtons OK MessageBoxIcon Stop)

  

  

  //客户端

  using System Net

  using System Net Sockets

  using System Text

  private void button _Click(object sender System EventArgs e)

  

  BeginSend()

  

  private void BeginSend()

  

  string ip=this txtip Text

  string port=this txtport Text

  IPAddress serverIp=IPAddress Parse(ip)

  int serverPort=Convert ToInt (port)

  IPEndPoint iep=new IPEndPoint(serverIp serverPort)

  byte[] byteMessage

  // do

  //

  Socket socket=new Socket(AddressFamily InterNeork SocketType Stream ProtocolType Tcp)

  socket Connect(iep)

  byteMessage=Encoding ASCII GetBytes(textBox Text)

  socket Send(byteMessage)

  socket Shutdown(SocketShutdown Both)

  socket Close()

  //

  // while(byteMessage!=null)

  

  基于TCP协议的发送和接收端

  TCP协议的接收端

  using System Net Sockets //使用到TcpListen类

  using System Threading //使用到线程

  using System IO //使用到StreamReader类

  int port = //定义侦听端口号

  private Thread thThreadRead //创建线程 用以侦听端口号 接收信息

  private TcpListener tlTcpListen //侦听端口号

  private bool blistener = true //设定标示位 判断侦听状态

  private NeorkStream nsStream //创建接收的基本数据流

  private StreamReader srRead

  private System Windows Forms StatusBar statusBar

  private System Windows Forms Button button

  private System Windows Forms ListBox listBox //从网络基础数据流中读取数据

  private TcpClient tcClient

  private void Listen ( )

  

  try

  

  tlTcpListen = new TcpListener ( port ) //以 端口号来初始化TcpListener实例

  tlTcpListen Start ( ) //开始监听

  statusBar Text = 正在监听

  tcClient = tlTcpListen AcceptTcpClient ( ) //通过TCP连接请求

  nsStream = tcClient GetStream ( ) //获取用以发送 接收数据的网络基础数据流

  srRead=new StreamReader(nsStream) //以得到的网络基础数据流来初始化StreamReader实例

  statusBar Text = 已经连接!

  while( blistener ) //循环侦听

  

  string sMessage = srRead ReadLine() //从网络基础数据流中读取一行数据

  if ( sMessage == STOP ) //判断是否为断开TCP连接控制码

  

  tlTcpListen Stop() //关闭侦听

  nsStream Close() //释放资源

  srRead Close()

  statusBar Text = 连接已经关闭!

  thThreadRead Abort() //中止线程

  return

  

  string sTime = DateTime Now ToShortTimeString ( ) //获取接收数据时的时间

  listBox Items Add ( sTime + + sMessage )

  

  

  catch ( System Security SecurityException )

  

  MessageBox Show ( 侦听失败! 错误 )

  

  

  //开始监听

  private void button _Click(object sender System EventArgs e)

  

  thThreadRead = new Thread ( new ThreadStart ( Listen ) )

  thThreadRead Start() //启动线程

  button Enabled=false

  

  // 清理所有正在使用的资源

  protected override void Dispose( bool disposing )

  

  try

  

  tlTcpListen Stop() //关闭侦听

  nsStream Close()

  srRead Close() //释放资源

  thThreadRead Abort() //中止线程

  

  catch

  if( disposing )

  

  if (ponents != null)

  

  ponents Dispose()

  

  

  base Dispose( disposing )

  

  TCP协议的发送端

  using System Net Sockets //使用到TcpListen类

  using System Threading //使用到线程

  using System IO //使用到StreamWriter类

  using System Net //使用IPAddress类 IPHostEntry类等

  private StreamWriter swWriter //用以向网络基础数据流传送数据

  private NeorkStream nsStream //创建发送数据的网络基础数据流

  private TcpClient tcpClient

  private System Windows Forms Button button

  private System Windows Forms TextBox textBox

  private System Windows Forms Button button

  private System Windows Forms TextBox textBox

  private System Windows Forms StatusBar statusBar

  private System Windows Forms Label label

  private System Windows Forms Label label //通过它实现向远程主机提出TCP连接申请

  private bool tcpConnect = false //定义标识符 用以表示TCP连接是否建立

  //连接

  private void button _Click(object sender System EventArgs e)

  

  IPAddress ipRemote

  try

  

  ipRemote = IPAddress Parse ( textBox Text )

  

  catch //判断给定的IP地址的合法性

  

  MessageBox Show ( 输入的IP地址不合法! 错误提示! )

  return

  

  IPHostEntry ipHost

  try

  

  ipHost = Dns Resolve ( textBox Text )

  

  catch //判断IP地址对应主机是否在线

  

  MessageBox Show ( 远程主机不在线! 错误提示! )

  return

  

  string sHostName = ipHost HostName

  try

  

  TcpClient tcpClient = new TcpClient(sHostName ) //对远程主机的 端口提出TCP连接申请

  nsStream = tcpClient GetStream() //通过申请 并获取传送数据的网络基础数据流

  swWriter = new StreamWriter(nsStream) //使用获取的网络基础数据流来初始化StreamWriter实例

  button Enabled = false

  button Enabled = true

  tcpConnect = true

  statusBar Text = 已经连接!

  

  catch

  

  MessageBox Show ( 无法和远程主机 端口建立连接! 错误提示! )

  return

  

  

  //发送

  private void button _Click(object sender System EventArgs e)

  

  if (textBox Text != )

  

  swWriter WriteLine(textBox Text) //刷新当前数据流中的数据

  swWriter Flush()

  

  else

  

  MessageBox Show( 发送信息不能为空! 错误提示! )

  

  

  // 清理所有正在使用的资源

  protected override void Dispose( bool disposing )

  

  if ( tcpConnect )

  

  swWriter WriteLine ( STOP ) //发送控制码

  swWriter Flush () //刷新当前数据流中的数据

  nsStream Close () //清除资源

  swWriter Close ()

  

  if( disposing )

  

  if (ponents != null)

  

  ponents Dispose()

  

  

  base Dispose( disposing )

  

  

cha138/Article/program/net/201311/12468

相关参考

知识大全 Java Socket编程(一)Socket传输模式

JavaSocket编程(一)Socket传输模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 Java中的Socket编程

Java中的Socket编程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Socket是网络上

知识大全 Java网络编程-Java Socket编程(五)

Java网络编程-JavaSocket编程(五)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Java网络编程-Java Socket编程(一)

Java网络编程-JavaSocket编程(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Java网络编程-Java Socket编程(二)

Java网络编程-JavaSocket编程(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Java网络编程-Java Socket编程(四)

Java网络编程-JavaSocket编程(四)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Java网络编程-Java Socket编程(三)

Java网络编程-JavaSocket编程(三)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!li

知识大全 Java socket 入门编程实例

Javasocket入门编程实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  例子是学习编程的

知识大全 Java Socket编程UDP

JavaSocket编程UDP  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  看了下UDP编程的

知识大全 Java进行并发多连接socket编程

Java进行并发多连接socket编程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java多