======================================C#网络通信======================================
一:服务器端程序 ( ======10.17=====)
1.建立服务器端socket
1)使用Socket类 :
建立服务器Socket对象:
Socket objs=new Socket(参数);
使用IPEndPoint类设置服务器ip地址和端口号;或使用Dns类
IPAddress serip=IPAddress.Parse(ip地址);
或: IPAddress serip=Dns.Resolve(Dns.GetHostName()).AddressList[0];
IPEndPoint objp=new IPEndPoint(serip,端口号);
使用Socket类的Bind方法设置服务器Socket
objs.Bind(objp); 参数为ip地址和端口号
使用Socket类的Listen方法开始监听等待客户端的链接请求
objs.Listen(10); 10为最大客户端链接数;
2)使用TcpListener类:
指定服务器ip地址和端口号;
IPAddress serip=IPAddress.Parse(ip地址);
或: IPAddress serip=Dns.Resolve(Dns.GetHostName()).AddressList[0];
TcpListener tcpl=new TcpListener(serip,端口号);
使用TcpListener类的Strat()方法开始监听等待客户端的链接请求
tcpl.Start();
2.接受客户端的链接
1)使用Socket类:
Socket news=objs.Accept();
Accept()方法用来接受客户端的链接请求,并建立新的Socket对象,该对象将作为服务端和客户端链接及数据传输的依据;
2)使用TcpListener类:
Socket news=tcpl.AcceptSocket();
AcceptSocket()方法接受链接请求,并建立新的Socket对象,该对象将作为服务端和客户端链接及数据传输的依据;
或:
TcpClient tcpc=tcpl.AcceptTcpLClient();
AcceptTcpLClient()方法接受链接请求,并建立新的Socket对象,该对象将作为服务端和客户端链接及数据传输的依据;
3.接受并发送信息
1)使用Socket类:
send()方法:发送数据到已链接的Socket;
sendTo()方法:发送数据到特定ip;
Receive()方法:从链接的Socket接受数据;
ReceiveFrom()方法:从特定的ip接受数据;
2)使用TcpListener类:
如果链接是AcceptSocket()获得,则可使用Socket类的接收方法;
如果链接是AcceptTcpLClient()获得,则使用TcpClient类的GetStream()方法取得服务端的输入输出流NetworkStream;
public NetworkStream GetStream();
然后就可以使用该类的方法来处理数据的发送和接受了;
Read()方法;
ReadByte()方法;
Write();
WriteByte();
Close(); 关闭流
4.关闭链接
1)使用Socket类:
Close();
为避免链接在关闭前,仍在进程数据的操作,使用该方法暂停数据的发送和接受操作
ShutDown();
2)使用TcpListener类:
Stop();
二:客户端程序 ( ======10.18=====)
1.建立客户端socket
1) 使用Socket类:
建立客户端socket对象:
Socket objC=new Socket(参数);
使用IPEndPoint类设置服务器ip地址和端口号;或使用Dns类
IPAddress serip=IPAddress.Parse(ip地址);
或: IPAddress serip=Dns.Resolve(Dns.GetHostName()).AddressList[0];
IPEndPoint objp=new IPEndPoint(serip,端口号);
2)使用TcpClient类:
TcpClient tcpl=new TcpClient();
指定服务器ip地址和端口号;
IPAddress serip=IPAddress.Parse(ip地址);
或: IPAddress serip=Dns.Resolve(Dns.GetHostName()).AddressList[0];
IPEndPoint tcpP=new IPEndPoint(serip,端口号);
2.连接到服务器
1) 使用socket类:
objC.Connect(objp); 参数是IPEndPoint类指定的服务器的ip和侦听端口号;
2)使用TcpClient类:
tcpl.Connect(tcpP);
3.接受并发送信息
1)使用socket类:
send()方法:发送数据到已链接的Socket;
sendTo()方法:发送数据到特定ip;
Receive()方法:从链接的Socket接受数据;
ReceiveFrom()方法:从特定的ip接受数据;
2)使用TcpClient类:
使用TcpClient类的GetStream()方法取得客户端的输入输出流NetworkStream;
public NetworkStream GetStream();
然后就可以使用该类的方法来处理数据的发送和接受了;
Read()方法;
ReadByte()方法;
Write();
WriteByte();
Close(); 关闭流
4.关闭链接
1)使用socket类:
暂停客户端socket上数据的传送操作;
Shutdown(Send/Receive/Both);
关闭客户端链接:
Close();
2)使用TcpClient类:
Close();
======================================C#收发邮件======================================
邮件协议:
SMTP (Simple Mail Transfer Protocol) : 简单邮件协议 用于发送邮件
POP3 (Post Office Protocol version 3) :邮局协议(第三版) 用于接收邮件
IMAP4 (Internet Mail Access Protocol 4): 用于接收邮件