c# 网络编程知识整理(一)
来源:互联网 发布:网络棋牌骗局 编辑:程序博客网 时间:2024/06/06 19:20
今天学习了c#网络编程的一些东西,在这里记下来。
1、客户端连接远程服务器
TcpClient client = new TcpClient();
client.Connect(IPAddress.Parse("192.168.0.123"), 8500);
2、服务端打开端口等待客户端连接
IPAddress ip = new IPAddress(new byte[] { 192, 168, 0, 123 });
TcpListener listener = new TcpListener(ip, 8500);
listener.Start();
Console.WriteLine("Start Listenning ...");
while (true)
{
TcpClient client = listener.AcceptTcpClient();
}
3、发送消息
byte[] temp = Encoding.Unicode.GetBytes(msg);
NetworkStream streamToServer.Write(temp, 0, temp.Length);
同步接收消息
int byteRead = streamToClient.Read(buffer, 0, 8192);
string msg = Encoding.Unicode.GetString(buffer, 0, byteRead);
异步接收消息
AsyncCallback callBack = new AsyncCallback(ReadComplete);
streamToServer.BeginRead(buffer, 0, BufferSize, callBack, null);
ReadComplete(IAsyncResult ar)是回调函数,当异步接收执行完成以后,会自动调用回调函数。
private void ReadComplete(IAsyncResult ar)
{
int bytesRead;
try
{
lock (streamToServer)
{
bytesRead = streamToServer.EndRead(ar);
}
if (bytesRead == 0)
{
throw new Exception("读取到0字节");
}
string msg = Encoding.Unicode.GetString(buffer, 0, bytesRead);
Console.WriteLine("Received: {0}",msg);
Array.Clear(buffer, 0, buffer.Length);
lock (streamToServer)
{
AsyncCallback callBack = new AsyncCallback(ReadComplete);
streamToServer.BeginRead(buffer, 0, BufferSize, callBack, null);
}
}
catch(Exception ex)
{
if (streamToServer != null)
{
streamToServer.Dispose();
client.Close();
Console.WriteLine(ex.Message);
return;
}
}
}
- c# 网络编程知识整理(一)
- 网络编程知识整理
- SerialPort 串口编程知识整理(一)
- C#小知识整理一
- C# 网络编程(一)
- 网络编程知识巩固(一)
- C#网络编程(一)
- C#网络编程《一》
- 【笔记】关于网络编程的知识整理
- (一)Linux网络编程--网络知识介绍
- (一)Linux网络编程--网络知识介绍
- (一)Linux网络编程--网络知识介绍
- 多线程网络编程(一)C#
- C#网络编程 (一) 概述
- C#知识整理(1)
- 数据结构知识整理(一)
- Oracle知识整理(一)
- 知识整理回顾(一)
- web应用四种常见的页面操作模式
- 存储过程懂不懂
- 关于JS中的constructor与prototype
- jsp servlet连接sql2005数据库
- Struts标签没有name属性怎么办?
- c# 网络编程知识整理(一)
- C#语音朗读文本 — TTS的实现
- jspSmartUpload上传中文乱码问题
- android SQLite数据库应用
- jspSmartUpload上传下载全攻略(转)
- Linux查看系统版本
- jspsmartupload组件使用(二)相关类说明篇 ---转
- 如何用Skype远程控制自制智能家居
- 通过js以超链接的形式访问jsp或访问servlet