C 網路通訊

2021-04-13 21:46:29 字數 3121 閱讀 7072

***********************************===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接受資料;

***********************************===c#收發郵件***********************************===

郵件協議:

**tp (****** mail transfer protocol) : 簡單郵件協議 用於傳送郵件

pop3 (post office protocol version 3) :郵局協議(第三版) 用於接收郵件

imap4 (internet mail access protocol 4): 用於接收郵件

C 網路通訊程式設計

1 wcf wcf是rpc的一套框架和機制 系列文章 我的wcf之旅 1 系列文章列表 2 其中的入門 建立乙個簡單的wcf程式 2 http通訊 1 http協議簡介 這裡有比較詳細的入門級介紹 這個除了基本的類外,還有網路抓取的框架,是收費的。此外,他還有關於這些原理還程式設計的諸多介紹文章,都...

C 與C C Socket網路通訊

c作為客戶端 傳送端 建立套接字 sersocket socket af inet,sock dgram,0 if sersocket invalid socket 繫結ip和埠 mysin.sin family af inet mysin.sin port htons cport mysin.si...

Winsock網路通訊

winsock網路通訊 這裡我希望和大家 一下winsock網上通訊的程式,由於網際網路的普及,越來越多的程式具有了在網上與其他程式通訊的功能.其實所有這些功能都建立在winsock介面之上,應用程式執行大多數網路通訊的基本物件稱為套介面或軟插口 socket 使用mfc winsocket類新增網...