C#Socket基礎,歡迎來訪!
測試一:
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
namespace Socket_Learn
{
///
/// @author ZJC
/// 這章主要學習基本的socket一些類的用法,DNS類可以獲得主機的名稱和ip地址列表
/// 報文=數據塊 。
/// 報文(message)是網絡中交換與傳輸的數據單元,即站點一次性要發送的數據塊。
/// 報文包含了將要發送的完整的數據信息,其長短很不一致,長度不限且可變。
/// 報文也是網絡傳輸的單位,傳輸過程中會不斷的封裝成分組、包、幀來傳輸,
/// 封裝的方式就是添加一些信息段,那些就是報文頭以一定格式組織起來的數據。
/// 比如裡面有報文類型,報文版本,報文長度,報文實體等等信息。
///
class Program
{
static void Main(string[] args)
{
string HostName = Dns.GetHostName();//get this commputer's name
Console.WriteLine("My computer's name = {0}",HostName);//XX的PC
IPHostEntry ipEntry = Dns.GetHostEntry(HostName);//get this conputer's IP address by it's name;
IPAddress[] addr = ipEntry.AddressList;
Console.WriteLine("I have get all the addresses in this computer,show it as follows:");
for (int i = 0; i < addr.Length; i++)
{
Console.WriteLine("IP address[{0}]:{1}",i,addr[i].ToString());
Console.WriteLine("Address's sort:[{0}],{1}",i,addr[i].AddressFamily.ToString());
//addressfamily:ipv4&ipv6&局域網
}
Console.ReadKey();
}
}
}

using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Net.Sockets;
namespace SocketLearn2
{
class Program
{
static void Main(string[] args)
{
IPAddress ipaddr = IPAddress.Parse("127.0.0.1"); //IPAddress
IPEndPoint ipep = new IPEndPoint(ipaddr,8080); //creat a IPEndPoint Instance
Socket test_socket = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp); //creat a instance of socket
Console.WriteLine("AddressFamily:{0}",test_socket.AddressFamily); //print our socket's information
Console.WriteLine("SocketType:{0}",test_socket.SocketType);
Console.WriteLine("ProtocolType:{0}",test_socket.ProtocolType);
Console.WriteLine("Blocking:{0}",test_socket.Blocking);
test_socket.Blocking = false; //change the attriubutes of Socket's instance
Console.WriteLine("Connected:{0}",test_socket.Connected);
test_socket.Bind(ipep); //ues Bind() method to connect socket to LocalEndPoint
IPEndPoint sock_ipe = (IPEndPoint)test_socket.LocalEndPoint;//if not Bind(),will throw a exception.because test_socket.LocalEndPoint = null!
Console.WriteLine("LocalEndPoint:{0}",sock_ipe.ToString());
test_socket.Close(); //close the socket
Console.ReadKey();
}
}
}
