class Program
{
static void Main(string[] args)
{
try
{
SmtpClient mySmtp = new SmtpClient("stmp host",smtp port);
//定義smtp的連接(smtp 網址,smtp port(預設25))
mySmtp.Credentials = new System.Net.NetworkCredential("account", "password");
//設定寄件者的認證(帳號,密碼)
MailMessage msgMail = new MailMessage();
//定義電子郵件
msgMail.From = new MailAddress("account@smtp host");
//寄件者
msgMail.To.Add("account@smtp host");
//收件者
msgMail.Subject = "mail subject";
//主旨
msgMail.SubjectEncoding = System.Text.Encoding.UTF8;
//主旨的編碼
msgMail.IsBodyHtml = true;
//設定郵件內容採用HTML格式
msgMail.Body = "mail content";
//設定郵件內容
msgMail.BodyEncoding = Encoding.UTF8;
//內容編碼
mySmtp.Send(msgMail);
//發送mail
Console.WriteLine("send success");
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
Console.ReadKey();
}
}
2012年8月20日 星期一
C# Send Mail (SmtpClient)
2012年8月14日 星期二
C# Socket Sample(Client-server)
Server 端:
namespace lf.socket.clientserver
{
class Server
{
static void Main(string[] args)
{
IPEndPoint ipont = new IPEndPoint(IPAddress.Any, 20);
//將IP位址和Port宣告為服務的連接點(所有網路介面卡 IP,20 Port)
Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//宣告一個Socket通訊介面(使用IPv4協定,通訊類型,通訊協定)
newsock.Bind(ipont);
//建立本機連線
newsock.Listen(10);
//偵測連接(最大連接數)
while (true)
{
Socket client = newsock.Accept();
//宣告一個Socket等於新建立的連線
IPEndPoint clientip = (IPEndPoint)client.RemoteEndPoint;
//宣告一個連接點為socket端的連接點
System.Console.WriteLine("Client End Point = " + clientip);
//印出遠端IP位址
SocketListener listener = new SocketListener(client);
//宣告一個監聽類別SocketListener監聽client訊息
Thread thread = new Thread(new ThreadStart(listener.run));
//宣告一個執行序去跑SocketListener監聽事件
thread.Start();
}
}
}
public class SocketListener
{
private Socket socket;
public SocketListener(Socket socket)
{
this.socket = socket;
//建構元取得遠端socket連線
}
public void run()
{
while (true)
{
byte[] data = new byte[1024];
//定義一個資料緩衝區接收長度最大為(1024)
int len = socket.Receive(data);
//接收資料至緩衝區中並回傳成功街收位元數
if (len == 0) break;
//若成功接收位元數為0則跳出迴圈
System.Console.WriteLine(Encoding.UTF8.GetString(data,0,len));
//印出編碼後的資料(資料,起始位置,長度)
}
socket.Close();
}
}
}
Client 端:
namespace lf.socket.clientserver
{
class Client
{
static void Main(string[] args)
{
IPEndPoint ipont = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 20);
//將IP位址和Port宣告為服務的連接點(Server Ip,20 Port)
Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//宣告一個Socket通訊介面(使用IPv4協定,通訊類型,通訊協定)
server.Connect(ipont);
//建立至遠端主機的連接
while (true)
{
string input = Console.ReadLine();
//接收輸入字串
if (input == "exit")break;
//若輸入exit則跳出迴圈
byte[] data = Encoding.UTF8.GetBytes(input);
//將字串以UTF8編碼存入緩衝區
server.Send(data);
}
server.Shutdown(SocketShutdown.Both);
//關閉遠端的傳送與接收
server.Close();
//關閉連接
System.Console.Write("Disconnecting from server...");
System.Console.ReadKey();
}
}
}
訂閱:
意見 (Atom)