WEB开发网
开发学院软件开发C语言 C#网络编程(异步传输字符串) - Part.3 阅读

C#网络编程(异步传输字符串) - Part.3

 2009-03-26 08:20:01 来源:WEB开发网   
核心提示: string msg = "Welcome to TraceFact.Net!";for (int i = 0; i <= 2; i++) { byte[] buffer = Encoding.Unicode.GetBytes(msg); // 获得缓存 try

string msg = "Welcome to TraceFact.Net!";

for (int i = 0; i <= 2; i++) {
    byte[] buffer = Encoding.Unicode.GetBytes(msg);     // 获得缓存
    try {
        streamToServer.Write(buffer, 0, buffer.Length); // 发往服务器
        Console.WriteLine("Sent: {0}", msg);
    } catch (Exception ex) {
        Console.WriteLine(ex.Message);
        break;
    }
}

运行服务端,然后再运行这个客户端,你可能会看到这样的结果:

C#网络编程(异步传输字符串) - Part.3

C#网络编程(异步传输字符串) - Part.3

可以看到,尽管上面将消息分成了三条单独发送,但是服务端却将后两条合并成了一条。对于这些情况,我们可以这样处理:就好像HTTP协议一样,在实际的请求和应答内容之前包含了HTTP头,其中是一些与请求相关的信息。我们也可以订立自己的协议,来解决这个问题,比如说,对于上面的情况,我们就可以定义这样一个协议:

[length=XXX]:其中xxx是实际发送的字符串长度(注意不是字节数组buffer的长度),那么对于上面的请求,则我们发送的数据为:“[length=25]Welcome to TraceFact.Net!”。而服务端接收字符串之后,首先读取这个“元数据”的内容,然后再根据“元数据”内容来读取实际的数据,它可能有下面这样两种情况:

上一页  1 2 3 4 5 6 7  下一页

Tags:网络编程 异步 传输

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接