C網路編程視頻
① c程序如何在windows下進行網路編程
和編譯(OR IDE)環境有關,比如vc就可以直接使用所有c的庫函數.
ftp使用TCP,那麼就用流式套接字(SOCK_STREAM)的相關函數,如果作為客戶端,調用順序如下:
1 socket()
2 connect()
3 send/recv
4 closesocket()
如果是伺服器端,調用順序如下:
1 socket()
2 bind()
3 listen()
4 accept()
5 send/recv()
6 closesocket()
vc下有庫ws2_32.lib可供使用
程序只能在傳輸層進行開發(既TCP/UDP),不可以在應用層進行操作,即沒有這樣的庫,調用它一個函數就實現了ftp的客戶端或伺服器端。如果需要可以參照網上的ftp代碼。
使用如上庫很簡單:
#include <winsock2.h>
#pragma comment(lib,"ws2_32.lib")
...
詳見msdn
② c語言網路編程
路由器本身不具備數據保存能力。
通常,路由器的功能是埠轉發。在路由器建立埠映射(公網某埠和內網某台電腦的某埠關聯)後,外網電腦才能和內網某電腦進行通信,通信過程中路由器一直負責數據的中轉。但內網電腦一旦關閉連接,路由器是無法單獨收取並保存信息的,它會直接把斷連事件通知給連接的另一端(外網某電腦)。
例如你的情況,如果區域網里是作為伺服器S(監聽方),外網某電腦作為客戶端C(連接方)。
S程序本身監聽埠2014,而C要連接的是路由器在公網的12345埠。
設路由器在公網IP是123.124.125.126,S的內網IP是192.168.1.1。
這時需要對路由器進行手動配置,讓路由器能將公網的12345埠和內網192.168.1.1這台電腦的2014映射關聯。
這時,內網192.168.1.1上的S對2014進行監聽(就用bind然後listen),路由器會反映到公網上,於是在公網看來,就是」電腦「123.124.125.126在對12345進行監聽。
而如果外網連接123.124.125.126:12345(注意冒號),路由器會將這個連接請求轉化成對192.168.1.1:2014(注意冒號)的連接請求,於是S就會收到連接,能用accept接受它。
後面都和區域網編程一樣了。
有問題請繼續追問。
③ Windows下C語言網路編程快速入門。
C語言的學習,一般的方式是,先學C,然後是C++,最好還要有匯編語言和微機原理基礎,然後才是Visual
C++。這樣的方式,對學習者來說,要花費很多時間和耐力。而在學校教學中,也沒有時間深入學習Windows編程的實用技術了。其實,具有了C語言基礎後,再有一些基本的C++類的概念,就可以直接學習Windows
C編程了。一、走近Windows
C語言很多語言都把顯示一個「Hello,World!」做為第一個入門程序,
C語言的第一個程序是這樣的:#include<stdio.h>
main()
{
printf(「Hello,World!」);
}如果把main函數寫成帶參數的main函數,應該是:#include<stdio.h>
main(int
arge,char
*argv[])
{
printf(「Hello,World!」);
}Windows
C的第一個程序和這個程序在形式和原理上都是一致的,只是有兩點不同:1.
主函數接收的形參不只是命令行中的字元串的個數和字元串的首地址。2.
C語言的很多函數在Windows
C中都可以繼續使用,但象printf()屏幕顯示等函數就不能繼續使用了。因為Windows是多任務操作系統,屏幕已不再為某一個應用程序所獨有,Windows
C應用程序要顯示字元串,需要使用Windows提供的API函數,開自己的窗口下面是一個最簡單的,顯示「Hello,World!」的Windows
C程序:#include<windows.h>
APIENTRY
WinMain(HINSTANCE
hInstance,HINSTANCE
hPrevInstance,
LPSTR
lpCmdLine,int
nCmdShow)
{
MessageBox(NULL,"Hello,World!","第一個Windows
C程序",MB_OK|MB_ICONASTERISK);
}主函數的形參有四個:1)
Hinstance:接收程序運行時當前實例的句柄;2)
HprivInstance:前一個實例的句柄;3)
LpCmdLine:程序命令行指針;4)
NcmdShow:一個用來指定窗口顯示方式的整數。這幾個參數的使用我們會在深入的學習中介紹的。顯示Hello,Word!字元串,我們使用了一個MessageBox函數,這個函數會在屏幕上顯示一個對話框,它的原型是:int
MessageBox(HWND
hWnd,LPCTSTR
lpText,LPCTSTR
lpCaption,UNIT
uType)四個參數分別是:1)
HWnd:父窗口的句柄;2)
LpText:要顯示字元串的指針;3)
LpCaption:對話框標題字元串的指針;4)
UType:顯示在對話框上的小圖標的類型。使用這個函數要包含windows.h頭文件。調試一下,怎麼樣?窗口上彈出了一個「第一個Windows
C程序」對話框,上面有一行字:「Hello,World!」。世界真的很美好啊!!
你連答案也發啦,暈!
④ c語言網路編程問題
#include<stdio.h>
voidcompare(void*p)
{
int*s=(int*)p;//要實現轉化,否則報錯
printf("s=%d ",*s);
}
voidmain()
{
intm;
scanf("%d",&m);
compare(&m);
printf("m=%d ",m);
}//可以這樣用
⑤ linux下C語言網路編程 如何入門
1.
可以.
說實話,我不太明白你意思...如果說GCC
能不能編譯CPP程序..我告訴你可以..GCC
G++都是鏈接..它們根據後綴來確定是什麼語言..
如果說,網路程序能不能用C++寫..那就太多了..ACE就是明顯的一例..BOOST:ASIO也是一例..
2
我建議你用GCC
實際上GDB沒什麼大用..你後面就懂了..一般用在看CORE文件上...如GCC的好處是,,你可以對編譯過程有個了解..真的不難..常用的總共不超過5個參數......ECLIPSE,不建議用,你初學,精力全浪費到那上面了
⑥ 在windows下用C語言如何實現socket網路編程,需要用到哪些頭文件或者庫
需要用到的頭文件包含:
#include <winsock2.h>
#include <windows.h>
與Linux環境下socket編程相比,windows環境多了一個步驟:啟動或者初始化winsock庫
Winsock,一種標准API,一種網路編程介面,用於兩個或多個應用程序(或進程)之間通過網路進行數據通信。具有兩個版本:
Winsock 1:
Windows CE平台支持。
頭文件:WinSock.h
庫:wsock32.lib
Winsock 2:
部分平台如Windows CE貌似不支持。通過前綴WSA可以區別於Winsock 1版本。個別函數如WSAStartup、WSACleanup、WSARecvEx、WSAGetLastError都屬於Winsock 1.1規范的函數;
頭文件:WinSock2.h
庫:ws2_32.lib
mswsock.h用於編程擴展,使用時必須鏈接mswsock.dll
(6)C網路編程視頻擴展閱讀
winsock庫的載入與卸載:
載入:int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData);
載入成功,返回值為0。
WORD wVersionRequested:載入的winsock版本,使用宏MAKEWORD(x, y),x表示高位元組,y表示低位元組。然而使用時MAKEWORD(2, 2)。高位元組與低位元組相同~~
LPWSADATA lpWSAData:WSADATA結構的指針,傳入參數後,系統幫助我們填充版本信息。有興趣的可以看看結構體內容,不過基本用不著。
卸載:int WSACleanup(void);比起載入,卸載的函數真是輕松愉快。
⑦ c語言網路編程
可以,不過C語言擅長的是邏輯處理和底層交互,頁面展現用C就太麻煩了
如果是網路方面的編程,建議你看看套介面Socket方面的書,最好在Linux下面,在Win下面就用wsock32的知識