----------------------
Windows Phone 7手机开发、
.Net培训、期待与您交流! ----------------------
cmd-services.msc 启动telnet服务
在internet上有很多这样的主机,这些主机一般运行了多个服务器软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口,不同的端口对应不同的服务(应用程序).
列如:http 80端口 ftp 21端口 smtp 23端口
Socket有两种通信方式
流式(stream);
是一种面向连接的socket,针对于面向连接的TCP服务应用,安全,但是效率低。
数据报式socket(Datagram)
是一种无连接的Socket,对应于无连接的UDP服务应用,不安全(丢失,顺序混乱,在接受端要分析重排及要求重发),但效率高。
Socket一般应用模式(服务端和客户端)
1 服务端welcoming socket开始件监听端口(负责监听客户端连接信息)
2客户端client socket连接服务端指定端口(负责接受和发送服务端消息)
3服务端welcoming socket监听到客户端连接,创建connection socket(负责和客户端通信)
一:服务端的socket(至少需要两个)
一个负责接受客户端连接请求(但不负责与客户端通信)
每成功接受到一个客户端的连接便在服务端产生一个对应的Socket。
1:在接受到客户端时创建
2:为每个接受成功的客户端请求在服务端都创建一个对应的Socket(负责和客户端通信)
二 客户端的socket
客户端Socket
必须指定要连接的服务端地址和端口。
通过创建一个Socket对象来初始化一个到服务端的TCP连接
Socket通讯过程
1 服务端:
申请一个socket
绑定到一个IP地址和一个端口上
开启侦听,等待接受连接
2 客户端:
申请一个socket
连接服务器(指明ip地址和端口号)
服务端接到连接请求后产生一个新的socket(端口大于1024) 与客户端简历连接并进行通讯,原侦听socket继续侦听.
按钮单击事件代码:
private void btnBeginListen_Click(object sender, EventArgs e)
{
//创建服务端 监听的 套接字,参数(ip4寻址协议,使用流时连接,使用tcp传输协议)
Socket lietenSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//获取文本框的ip地址对象
IPAddress address = IPAddress.Parse(txtIp.Text.Trim());
//创建包含ip和端口的网络节点对象
IPEndPoint endpoint = new IPEndPoint(address, int.Parse(txtport.Text.Trim()));
//将负责监听的套接字绑定到唯一的ip和端口
lietenSocket.Bind(endpoint);
//设置监听队列
lietenSocket.Listen(10);
//接受后创建一个连接的套接字 Socket connectionSocket = lietenSocket.Accept();
ShowMsg("客户端连接成功!");
}
void ShowMsg(string msg)
{
txtMsg.AppendText(msg + "\r\n");
}
尝试连接cmd下输入:
telnet 192.168.1.101 50001 连接成功!
---------------------- Windows Phone 7手机开发、 .Net培训、期待与您交流! ----------------------
详细请查看: http://net.itheima.com/
cmd-services.msc 启动telnet服务
在internet上有很多这样的主机,这些主机一般运行了多个服务器软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口,不同的端口对应不同的服务(应用程序).
列如:http 80端口 ftp 21端口 smtp 23端口
Socket有两种通信方式
流式(stream);
是一种面向连接的socket,针对于面向连接的TCP服务应用,安全,但是效率低。
数据报式socket(Datagram)
是一种无连接的Socket,对应于无连接的UDP服务应用,不安全(丢失,顺序混乱,在接受端要分析重排及要求重发),但效率高。
Socket一般应用模式(服务端和客户端)
1 服务端welcoming socket开始件监听端口(负责监听客户端连接信息)
2客户端client socket连接服务端指定端口(负责接受和发送服务端消息)
3服务端welcoming socket监听到客户端连接,创建connection socket(负责和客户端通信)
一:服务端的socket(至少需要两个)
一个负责接受客户端连接请求(但不负责与客户端通信)
每成功接受到一个客户端的连接便在服务端产生一个对应的Socket。
1:在接受到客户端时创建
2:为每个接受成功的客户端请求在服务端都创建一个对应的Socket(负责和客户端通信)
二 客户端的socket
客户端Socket
必须指定要连接的服务端地址和端口。
通过创建一个Socket对象来初始化一个到服务端的TCP连接
Socket通讯过程
1 服务端:
申请一个socket
绑定到一个IP地址和一个端口上
开启侦听,等待接受连接
2 客户端:
申请一个socket
连接服务器(指明ip地址和端口号)
服务端接到连接请求后产生一个新的socket(端口大于1024) 与客户端简历连接并进行通讯,原侦听socket继续侦听.
按钮单击事件代码:
private void btnBeginListen_Click(object sender, EventArgs e)
{
//创建服务端 监听的 套接字,参数(ip4寻址协议,使用流时连接,使用tcp传输协议)
Socket lietenSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//获取文本框的ip地址对象
IPAddress address = IPAddress.Parse(txtIp.Text.Trim());
//创建包含ip和端口的网络节点对象
IPEndPoint endpoint = new IPEndPoint(address, int.Parse(txtport.Text.Trim()));
//将负责监听的套接字绑定到唯一的ip和端口
lietenSocket.Bind(endpoint);
//设置监听队列
lietenSocket.Listen(10);
//接受后创建一个连接的套接字 Socket connectionSocket = lietenSocket.Accept();
ShowMsg("客户端连接成功!");
}
void ShowMsg(string msg)
{
txtMsg.AppendText(msg + "\r\n");
}
尝试连接cmd下输入:
telnet 192.168.1.101 50001 连接成功!
---------------------- Windows Phone 7手机开发、 .Net培训、期待与您交流! ----------------------
详细请查看: http://net.itheima.com/