------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------
一、 网络中进程之间如何通信?
首先解决的问题是:如何唯一标识一个进程,否则通信无从谈起。在本地,可以用进程的PID来唯一标识一个进程,而在网路中则行不通。TCP/IP协议族已解决了这个问题:网络层的“IP地址”可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标识主机中的应用程序(进程)。这样利用三元组(Ip地址,协议,端口)就可以标识网络中的进程了,网络中的进程标识就可以利用这个标识与其他进程进行交互。
二、 什么是Socket
用于描述IP地址和端口,是一个通信链的句柄。通过Socket可以接收和发送网络上的数据。
三、 Socket一般应用模式(服务端和客户端)
1、 服务端的Socket(至少需要两个)
(1) 一个负责接收客户端连接请求(但不负责通信);
(2) 每成功接收到一个客户端的连接便在服务端产生一个对应的Socket。
2、 客户端的Socket
(1) 必须指定要连接的服务端ip和端口;
(2) 通过创建一个Socket对象来初始化一个到服务端的TCP连接。
四、 Socket的通讯过程
1、 服务端
a) 申请一个socket
b) 绑定到Ip地址和端口
c) 开启监听
d) 等待客户端的连接请求。
2、 客户端
a) 申请一个socket
b) 向服务器发起连接(指明Ip地址和端口号)。
五、 面向连接的套接字调用时序
六、 实例:聊天程序
功能:服务端和客户端互相收发消息,服务端可以接受多个客户端的连接请求,并与之通信。
1、服务端程序:
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
//引入命名空间
using System.Net; //IPAddress、IPEndPoint类
using System