導航:首頁 > 網路問題 > 如何用編寫程序同意接入網路

如何用編寫程序同意接入網路

發布時間:2022-06-12 05:24:40

『壹』 用c++編寫支持網路功能的程序

封裝了如下SOCKET函數,其實使用也挺簡單的:

1。客戶端函數:
#include<stdlib.h>
#include<winsock.h>
#include<stdio.h>
#include<string.h>

#ifndef INADDR_NONE
#define INADDR_NONE 0xffffffff
#endif

//******************************************************
//
//本函數負責與服務平台聯系
//
//******************************************************

SOCKET SocketConnect(const char *host,const char *service,const char *transport)
{
struct protoent *protoin;//傳輸協議信息
struct sockaddr_in ipaddr;//主機的IP地址信息
struct hostent *hostin;//主機的信息
struct servent *servin;//伺服器(主機)信息
int sock,type;//套接字描述符

//將ipaddr結構快速清零
memset(&ipaddr,0,sizeof(ipaddr));
//地址結構
ipaddr.sin_family=AF_INET;

//從伺服器類型得到埠號
if(servin=getservbyname(service,transport))
ipaddr.sin_port=servin->s_port;//埠號
else
if((ipaddr.sin_port=htons((u_short)atoi(service)))==0)
{
printf("get server information error/n");
WSACleanup();
return INVALID_SOCKET;
}
//由傳輸協議得到對應的傳輸協議編碼
if((protoin=getprotobyname(transport))==0)
{
printf("get protocol information error/n");
WSACleanup();
return INVALID_SOCKET;
}
//從主機名獲取主機IP
if(hostin=gethostbyname(host))
memcpy(&ipaddr.sin_addr,hostin->h_addr,hostin->h_length);////
else
if((ipaddr.sin_addr.s_addr=inet_addr(host))==INADDR_NONE)
{
printf("get host IP infomation error/n");
WSACleanup();
return INVALID_SOCKET;
}
//根據傳輸類型給變數賦值
if(strcmp(transport,"udp")==0)
type=SOCK_DGRAM;
else
type=SOCK_STREAM;
//創建套接字描述符
sock=socket(PF_INET,type,protoin->p_proto);
if(sock==INVALID_SOCKET)
{
printf("creat socket error/n");
WSACleanup();
return INVALID_SOCKET;
}

//連接指定IP地址機器的指定服務埠,如果連接失敗,則退出
if(connect(sock,(struct sockaddr*)&ipaddr,sizeof(ipaddr))==SOCKET_ERROR)
{
printf("connect socket error!please start server first/n");
WSACleanup();
return INVALID_SOCKET;
}
return sock;
}

//************************************
//UDP傳輸類型
//************************************
SOCKET UDPConnect(const char *host,const char *service)
{
return SocketConnect(host,service,"udp");
}

//************************************
//TCP傳輸類型
//************************************
SOCKET TCPConnect(const char *host,const char *service)
{
return SocketConnect(host,service,"tcp");
}

2。客戶端函數調用例子(TCP):
//啟動程序後即連接伺服器,連接成功後接收控制台輸入,發送到服務端
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<winsock.h>
#pragma comment(lib,"wsock32")

#ifndef INADDR_NONE
#define INADDR_NONE 0xffffffff
#endif

SOCKET TCPConnect(const char*,const char*);
void TCPecho(char *,char*);

#define LINELEN 128
#define WAVERS MAKEWORD(2,0)//WORD MAKEWORD(byte bLow,byte bHigh);

void main(int argc,char *argv[])
{
char *host="localhost";//IP 地址
char *service="3333";//默認埠號
WSADATA wsadata;
switch(argc)
{
case 1:
host="localhost";//使用默認IP
break;
case 2:
host=argv[1];//使用命令行給的IP
break;
case 3:
host=argv[1];
service=argv[2];//使用命令行IP和埠號
break;
default:
printf("argment error/n");
exit(1);
}

if(WSAStartup(WAVERS,&wsadata)!=0)//初始化Winsock
{
printf("initalize failed/n");
WSACleanup();//清除Winsock
exit(1);
}

TCPecho(host,service);

WSACleanup();

exit(0);
}

void TCPecho(char *host,char *service)
{
char buf[LINELEN+1];
SOCKET s;
int outchars;

s=TCPConnect(host,service);//採用TCP協議連接服務程序
while(fgets(buf,sizeof(buf),stdin))//循環調用得到用戶輸入,當輸入的數據為回車時退出
{
buf[LINELEN]='/0';
outchars=strlen(buf);
send(s,buf,outchars,0);//發送消息

if(buf[0]=='/n')
break;
}
closesocket(s);
}

3。服務端函數:
#include<string.h>
#include<winsock.h>
#include<stdlib.h>
#include<stdio.h>
//
//SocketServer
//
SOCKET SocketServer(const char *service,const char*transport,int qlen)
{
struct sockaddr_in ipaddr;//主機IP地址
struct servent *servin;// 主機信息
struct protoent *protoin;//傳輸類型
int sock,type;// 套接字描述符

memset(&ipaddr,0,sizeof(ipaddr));
ipaddr.sin_family=AF_INET;
ipaddr.sin_addr.s_addr=INADDR_ANY;

// 從伺服器名得到服務埠
if(servin=getservbyname(service,transport))
ipaddr.sin_port=htons(ntohs((u_short)servin->s_port));
else
if((ipaddr.sin_port=htons((u_short)atoi(service)))==0)
{
printf("get portnumber error/n");
WSACleanup();
return INVALID_SOCKET;
}
//從傳輸協議得到對應的編號
if((protoin=getprotobyname(transport))==0)
{
printf("get protocol number error/n");
WSACleanup();
return INVALID_SOCKET;
}
//根據傳輸協議給對應的變數賦值
if(strcmp(transport,"udp")==0)
type=SOCK_DGRAM;
else
type=SOCK_STREAM;
//創建套接字
sock=socket(PF_INET,type,protoin->p_proto);
if(sock==INVALID_SOCKET)
{
printf("creat socket error/n");
WSACleanup();
return INVALID_SOCKET;
}
//綁定本地IP
if(bind(sock,(struct sockaddr*)&ipaddr,sizeof(ipaddr))==SOCKET_ERROR)
{
printf("socket bind error/n");
WSACleanup();
return SOCKET_ERROR;
}
//如果是流式傳輸(TCP)使套接字處於監聽狀態,等待來自客戶機的連接,參數qlen之指定等待
//隊列長度
if(type==SOCK_STREAM)
{
if(listen(sock,qlen)==SOCKET_ERROR)
{
printf("socket listen errror/n");
WSACleanup();
return SOCKET_ERROR;
}
}
return sock;
}

//************************************
//UDPServer
//************************************
SOCKET UDPServer(const char *service)
{
return SocketServer(service,"udp",0);
}

//************************************
//TCPServer
//************************************
SOCKET TCPServer(const char *service,int qlen)
{
return SocketServer(service,"tcp",qlen);
}

4。伺服器例子(TCP):
//接受客戶端連接,每接收到客戶端發送而來的數據則列印在控制台
#include<winsock.h>
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
#pragma comment(lib,"wsock32")

#define QLEN 5
#define BUFSIZE 5
#define WAVERS MAKEWORD(2,0)//WORD MAKEWORD(byte bLow,byte bHigh);

SOCKET TCPServer(const char*service,int qlen);
void main(int argc,char*argv[])
{
char *service="3333";//默認埠號
struct sockaddr_in fsin;
SOCKET msock,ssock;
WSADATA wsadata;
int alen,cc;
char buf[BUFSIZE];

switch(argc)
{
case 1:
break;//採用默認埠號
case 2:
service=argv[1];//採用命令行埠號
break;
default:
printf("argment error/n");
exit(1);
}
if(WSAStartup(WAVERS,&wsadata)!=0)//初始化Winsock
{
printf("initalize failed/n");
WSACleanup();//清除Winsock
exit(1);
}

msock=TCPServer(service,QLEN);//採用TCP協議

while(1)
{
alen=sizeof(struct sockaddr);
ssock=accept(msock,(struct sockaddr*)&fsin,&alen);//accept阻塞接收客戶端請求

if(ssock==INVALID_SOCKET)
{
printf("initialize failed/n");
WSACleanup();
exit(1);
}
while(cc=recv(ssock,buf,sizeof(buf)-1,0))//接收客戶端信息,當收到的信息為零時,則退出
{
buf[cc]='/0';
printf("%s",buf);
}
printf("connect close...");
closesocket(ssock);
break;
}
}

以上是兩個完整的客戶端和服務端程序,可建立兩個VC控制台工程編譯運行,進行連接測試。

『貳』 怎麼指定某程序使用某個網路呢

用的是無線接入方式上網,可以這樣辦:法1.有無線網卡的客戶機,通通用原始提供的無線方式上網,其他有線的客戶機可以看看提供無線的地方能不能拉一根線出來,然後你再在底下接路由器或交換機,讓這些客戶接到設備上來上網。
法2.要是法1中,不能拉線,必須要一台主機做代理伺服器,讓有線客戶機上網。那台伺服器要有一個無線網卡和一個有線網卡,無線網卡連到無線熱點;有線網卡可以接一個路由器或交換機,提供有線客戶機上網。再把無線連接和有線連接橋接起來就可以了。我覺得只有這樣做比較實在點了。無線路由器由於不能用來當無線網卡使,不能讓它去查找無線熱點,故有線客戶機不能用它來代理上網

『叄』 如何在系統中設置允許程序訪問網路

程序支持聯網但連不上的話,退出該軟體,在選項里找到許可或者接入這個操作,(打開後因手機而異),但都有網路許可設置,把不可訪問都改為可訪問

『肆』 如何使用JAVA編寫網路通信程序

使用JAVA來進行網路編程
1)
由於客戶端通過IE同伺服器建立聯系,所以客戶端使用Applet,伺服器端使用Application;
2)
伺服器應設置成多線程,應答多個客戶的請求;
3)
兩端通信使用SOCKET機制。
2.2客戶機/伺服器通信的動機
客戶機-伺服器範例的基本動機來自聚集問題。
為了理解這一問題,設想一個人試圖在分離的機器上啟動兩個程序並讓它們進行通
信,還要記住,計算機的運行要比人的速度快許多數量級。在某人啟動第一個程序後,
該程序開始執行並向其對等程序發送消息,在幾個微妙內,它便發現對等程序還不存在,
於是就發出一條錯誤消息,然後退出。在這時,某個人啟動了第二個程序,不幸的是,當第二個程序開始執行時,它發現對等程序已經終止執行了,即便是兩個程序連續重新試著通信,
但由於它們每個程序執行的速度那麼快。因而它們
在同一瞬間向對方發送消息的概率是很低的。
客戶機-伺服器模型是這樣解決這種聚集問題的。它要求在任何一對進行通信的應用進程中,有一方必須在啟動執行後(無限期地)等待對方的聯系,這種解決方案是重要的,因為TCP/IP自己對入呼叫通信是不會響應的。
由於TCP/IP並不是提供在一個報文到達後自動創建運行程序的任何機制,因此一個程序必須在任一請求到來前就在那裡等待以接受通信。
因此,為確保計算機已准備好了進行通信,多數系統管理員都安排通信程序在操作系統引導時就自動啟動。每個程序都一直運行下去,以便等待下一個服務請求的到來(此服務是該程序提供的)
望採納!!!

『伍』 android平台wifi的校園網的接入,如何實現,請各位大俠指教,有例子程序或者軟體更好,不甚感激

我沒有太明白你的意思,是你要搭建校園網的wifi平台,還是學校有wifi平台你先用手機或電腦接入上校園網。
一、如果你要搭建wifi校園網,那需要無線路由設備,構建出校園無線網路
二、如果是校園有wifi網路了,你先通過手機wifi,或是電腦wifi等移動設備接入的話,那直接打開移動設備網路設置打開wifi搜尋,搜索到校園wifi網路的話直接接入即可。一般無線網路都會設有接入用戶名和密碼,你需要知道校園網的wifi用戶名和密碼。這樣就可以接入了。

『陸』 控制台程序如何進行網路編程

-- win API socket
本文所談到的Socket函數如果沒有特別說明,都是指的Windows Socket API。

一、WSAStartup函數
int WSAStartup(
WORD wVersionRequested,
LPWSADATA lpWSAData
);
使用Socket的程序在使用Socket之前必須調用WSAStartup函數。該函數的第一個參數指明程序請求使用的Socket版本,其中高位位元組指明副版本、低位位元組指明主版本;操作系統利用第二個參數返回請求的Socket的版本信息。當一個應用程序調用WSAStartup函數時,操作系統根據請求的Socket版本來搜索相應的Socket庫,然後綁定找到的Socket庫到該應用程序中。以後應用程序就可以調用所請求的Socket庫中的其它Socket函數了。該函數執行成功後返回0。
例:假如一個程序要使用2.1版本的Socket,那麼程序代碼如下
wVersionRequested = MAKEWORD( 2, 1 );
err = WSAStartup( wVersionRequested, &wsaData );

二、WSACleanup函數
int WSACleanup (void);
應用程序在完成對請求的Socket庫的使用後,要調用WSACleanup函數來解除與Socket庫的綁定並且釋放Socket庫所佔用的系統資源。

三、socket函數
SOCKET socket(
int af,
int type,
int protocol
);
應用程序調用socket函數來創建一個能夠進行網路通信的套接字。第一個參數指定應用程序使用的通信協議的協議族,對於TCP/IP協議族,該參數置PF_INET;第二個參數指定要創建的套接字類型,流套接字類型為SOCK_STREAM、數據報套接字類型為SOCK_DGRAM;第三個參數指定應用程序所使用的通信協議。該函數如果調用成功就返回新創建的套接字的描述符,如果失敗就返回INVALID_SOCKET。套接字描述符是一個整數類型的值。每個進程的進程空間里都有一個套接字描述符表,該表中存放著套接字描述符和套接字數據結構的對應關系。該表中有一個欄位存放新創建的套接字的描述符,另一個欄位存放套接字數據結構的地址,因此根據套接字描述符就可以找到其對應的套接字數據結構。每個進程在自己的進程空間里都有一個套接字描述符表但是套接字數據結構都是在操作系統的內核緩沖里。下面是一個創建流套接字的例子:
struct protoent *ppe;
ppe=getprotobyname("tcp");
SOCKET ListenSocket=socket(PF_INET,SOCK_STREAM,ppe->p_proto);

四、closesocket函數
int closesocket(
SOCKET s
);
closesocket函數用來關閉一個描述符為s套接字。由於每個進程中都有一個套接字描述符表,表中的每個套接字描述符都對應了一個位於操作系統緩沖區中的套接字數據結構,因此有可能有幾個套接字描述符指向同一個套接字數據結構。套接字數據結構中專門有一個欄位存放該結構的被引用次數,即有多少個套接字描述符指向該結構。當調用closesocket函數時,操作系統先檢查套接字數據結構中的該欄位的值,如果為1,就表明只有一個套接字描述符指向它,因此操作系統就先把s在套接字描述符表中對應的那條表項清除,並且釋放s對應的套接字數據結構;如果該欄位大於1,那麼操作系統僅僅清除s在套接字描述符表中的對應表項,並且把s對應的套接字數據結構的引用次數減1。
closesocket函數如果執行成功就返回0,否則返回SOCKET_ERROR。

五、send函數
int send(
SOCKET s,
const char FAR *buf,
int len,
int flags
);
不論是客戶還是伺服器應用程序都用send函數來向TCP連接的另一端發送數據。客戶程序一般用send函數向伺服器發送請求,而伺服器則通常用send函數來向客戶程序發送應答。該函數的第一個參數指定發送端套接字描述符;第二個參數指明一個存放應用程序要發送數據的緩沖區;第三個參數指明實際要發送的數據的位元組數;第四個參數一般置0。這里只描述同步Socket的send函數的執行流程。當調用該函數時,send先比較待發送數據的長度len和套接字s的發送緩沖區的長度,如果len大於s的發送緩沖區的長度,該函數返回SOCKET_ERROR;如果len小於或者等於s的發送緩沖區的長度,那麼send先檢查協議是否正在發送s的發送緩沖中的數據,如果是就等待協議把數據發送完,如果協議還沒有開始發送s的發送緩沖中的數據或者s的發送緩沖中沒有數據,那麼send就比較s的發送緩沖區的剩餘空間和len,如果len大於剩餘空間大小send就一直等待協議把s的發送緩沖中的數據發送完,如果len小於剩餘空間大小send就僅僅把buf中的數據到剩餘空間里(注意並不是send把s的發送緩沖中的數據傳到連接的另一端的,而是協議傳的,send僅僅是把buf中的數據到s的發送緩沖區的剩餘空間里)。如果send函數數據成功,就返回實際的位元組數,如果send在數據時出現錯誤,那麼send就返回SOCKET_ERROR;如果send在等待協議傳送數據時網路斷開的話,那麼send函數也返回SOCKET_ERROR。要注意send函數把buf中的數據成功到s的發送緩沖的剩餘空間里後它就返回了,但是此時這些數據並不一定馬上被傳到連接的另一端。如果協議在後續的傳送過程中出現網路錯誤的話,那麼下一個Socket函數就會返回SOCKET_ERROR。(每一個除send外的Socket函數在執行的最開始總要先等待套接字的發送緩沖中的數據被協議傳送完畢才能繼續,如果在等待時出現網路錯誤,那麼該Socket函數就返回SOCKET_ERROR)
注意:在Unix系統下,如果send在等待協議傳送數據時網路斷開的話,調用send的進程會接收到一個SIGPIPE信號,進程對該信號的默認處理是進程終止。

六、recv函數
int recv(
SOCKET s,
char FAR *buf,
int len,
int flags
);
不論是客戶還是伺服器應用程序都用recv函數從TCP連接的另一端接收數據。該函數的第一個參數指定接收端套接字描述符;第二個參數指明一個緩沖區,該緩沖區用來存放recv函數接收到的數據;第三個參數指明buf的長度;第四個參數一般置0。這里只描述同步Socket的recv函數的執行流程。當應用程序調用recv函數時,recv先等待s的發送緩沖中的數據被協議傳送完畢,如果協議在傳送s的發送緩沖中的數據時出現網路錯誤,那麼recv函數返回SOCKET_ERROR,如果s的發送緩沖中沒有數據或者數據被協議成功發送完畢後,recv先檢查套接字s的接收緩沖區,如果s接收緩沖區中沒有數據或者協議正在接收數據,那麼recv就一直等待,只到協議把數據接收完畢。當協議把數據接收完畢,recv函數就把s的接收緩沖中的數據到buf中(注意協議接收到的數據可能大於buf的長度,所以在這種情況下要調用幾次recv函數才能把s的接收緩沖中的數據完。recv函數僅僅是數據,真正的接收數據是協議來完成的),recv函數返回其實際的位元組數。如果recv在時出錯,那麼它返回SOCKET_ERROR;如果recv函數在等待協議接收數據時網路中斷了,那麼它返回0。
注意:在Unix系統下,如果recv函數在等待協議接收數據時網路斷開了,那麼調用recv的進程會接收到一個SIGPIPE信號,進程對該信號的默認處理是進程終止。

七、bind函數
int bind(
SOCKET s,
const struct sockaddr FAR *name,
int namelen
);
當創建了一個Socket以後,套接字數據結構中有一個默認的IP地址和默認的埠號。一個服務程序必須調用bind函數來給其綁定一個IP地址和一個特定的埠號。客戶程序一般不必調用bind函數來為其Socket綁定IP地址和斷口號。該函數的第一個參數指定待綁定的Socket描述符;第二個參數指定一個sockaddr結構,該結構是這樣定義的:
struct sockaddr {
u_short sa_family;
char sa_data[14];
};
sa_family指定地址族,對於TCP/IP協議族的套接字,給其置AF_INET。當對TCP/IP協議族的套接字進行綁定時,我們通常使用另一個地址結構:
struct sockaddr_in {
short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
其中sin_family置AF_INET;sin_port指明埠號;sin_addr結構體中只有一個唯一的欄位s_addr,表示IP地址,該欄位是一個整數,一般用函數inet_addr()把字元串形式的IP地址轉換成unsigned long型的整數值後再置給s_addr。有的伺服器是多宿主機,至少有兩個網卡,那麼運行在這樣的伺服器上的服務程序在為其Socket綁定IP地址時可以把htonl(INADDR_ANY)置給s_addr,這樣做的好處是不論哪個網段上的客戶程序都能與該服務程序通信;如果只給運行在多宿主機上的服務程序的Socket綁定一個固定的IP地址,那麼就只有與該IP地址處於同一個網段上的客戶程序才能與該服務程序通信。我們用0來填充sin_zero數組,目的是讓sockaddr_in結構的大小與sockaddr結構的大小一致。下面是一個bind函數調用的例子:
struct sockaddr_in saddr;
saddr.sin_family = AF_INET;
saddr.sin_port = htons(8888);
saddr.sin_addr.s_addr = htonl(INADDR_ANY);
bind(ListenSocket,(struct sockaddr *)&saddr,sizeof(saddr));

八、listen函數
int listen( SOCKET s, int backlog );
服務程序可以調用listen函數使其流套接字s處於監聽狀態。處於監聽狀態的流套接字s將維護一個客戶連接請求隊列,該隊列最多容納backlog個客戶連接請求。假如該函數執行成功,則返回0;如果執行失敗,則返回SOCKET_ERROR。

九、accept函數
SOCKET accept(
SOCKET s,
struct sockaddr FAR *addr,
int FAR *addrlen
);
服務程序調用accept函數從處於監聽狀態的流套接字s的客戶連接請求隊列中取出排在最前的一個客戶請求,並且創建一個新的套接字來與客戶套接字創建連接通道,如果連接成功,就返回新創建的套接字的描述符,以後與客戶套接字交換數據的是新創建的套接字;如果失敗就返回INVALID_SOCKET。該函數的第一個參數指定處於監聽狀態的流套接字;操作系統利用第二個參數來返回新創建的套接字的地址結構;操作系統利用第三個參數來返回新創建的套接字的地址結構的長度。下面是一個調用accept的例子:
struct sockaddr_in ServerSocketAddr;
int addrlen;
addrlen=sizeof(ServerSocketAddr);
ServerSocket=accept(ListenSocket,(struct sockaddr *)&ServerSocketAddr,&addrlen);

十、connect函數
int connect(
SOCKET s,
const struct sockaddr FAR *name,
int namelen
);
客戶程序調用connect函數來使客戶Socket s與監聽於name所指定的計算機的特定埠上的服務Socket進行連接。如果連接成功,connect返回0;如果失敗則返回SOCKET_ERROR。下面是一個例子:
struct sockaddr_in daddr;
memset((void *)&daddr,0,sizeof(daddr));
daddr.sin_family=AF_INET;
daddr.sin_port=htons(8888);
daddr.sin_addr.s_addr=inet_addr("133.197.22.4");
connect(ClientSocket,(struct sockaddr *)&daddr,sizeof(daddr));

『柒』 如何用C語言編寫一個程序實現啟用承載網路

#include <windows.h>
#pragma comment(lib, "kernel32.lib")
#pragma comment(lib, "user32.lib")
#pragma comment(linker, "/entry:mainEntry /subsystem:windows")
void mainEntry()
{
wchar_t cmdLine[] = L"netsh.exe wlan start hostednetwork";
STARTUPINFOW si;
PROCESS_INFORMATION pi;

ZeroMemory(&si, sizeof si);
si.cb = sizeof si;

if (CreateProcessW(NULL, cmdLine, 0, 0, FALSE, CREATE_NO_WINDOW, 0, 0, &si, &pi) != FALSE) {
DWORD ret;
WaitForSingleObject(pi.hProcess, INFINITE);
GetExitCodeProcess(pi.hProcess, &ret);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);

if (ret == 0) {
MessageBoxW(NULL, L"成功啟用承載網路", L"信息", MB_OK | MB_ICONINFORMATION);
ExitProcess(0);
} else {
MessageBoxW(NULL, L"啟用承載網路失敗", L"錯誤", MB_OK | MB_ICONERROR);
ExitProcess(1);
}
} else {
MessageBoxW(NULL, L"執行命令失敗", L"錯誤", MB_OK | MB_ICONERROR);
ExitProcess(2);
}
}

我覺得我簡直蛋疼欲裂……


『捌』 我想寫個程序(開機後自動連接寬頻連接)

呵呵,算你找對人了不用那麼麻煩。可以設置一個批處理文件,載入啟動中介可以了。

建立一個PPPOE鏈接,不用輸入帳號和密碼。

建議一個*.BAT的批處理文件(就是把文檔文件存為BAT)

輸入:(」裡面的)

@echooff

RASDIAL寬頻連接名稱用戶名密碼

保存為任意.bat

剪貼到「程序」-「啟動」

ok

給你一個例子:

這是我的寬頻連接批處理文件內容:

@echooff

RASDIAL燒盤寶寶095634441234455

記住:開機會自動運行批處理文件,你不要管,是一個命令提示符運行界面

連接成功後就自動消失了

『玖』 如何編寫簡單的socket網路程序 如何編寫基於TCP協議的網路程序

下面是個人用了一個40分鍾左右的時間編寫的程序,在這編寫過程中,非常重要的一點就是: 要理解 tcp協議編寫程序的原理,即編寫伺服器端的過程,以及編寫客戶端的過程。 只要把握這兩點就可以很容易編寫出來了,但是要快速編寫出這個程序,那麼VC6.0開發工具里,最好要安裝一個番茄插件,這個插件可以快速提高你的編寫程序的效率,還有也要安裝msdn 文檔,這樣在編寫過程中,遇到對某個函數的參數想不全的時候,使用msdn就能快速幫你回憶了。 呵呵,如果你那一天去面試一家牛逼的公司的哇,很有可能就是 在筆試完成之後,就要進行機試了,這就完全考查出你的真正編程水平了。 能在極短時間里完成一個socket網路程序,那麼就可以令面試官感到非常滿意了。 不過,這個程序,還沒有連接資料庫,以後再繼續搞了。
如果你去面試 深圳科技園 那家 偉易達 集團公司的軟體工程師的哇,那麼機試題目就是這個。 當時我去面試,首先進行筆試,面試官對我筆試成績比較滿意,所以就叫我留下來吃頓飯,下午進行機試。 當時我應聘崗位是Linux系統工程師C語言, 可是筆試題目,不但考核C,還考核C++,JavaScript,html。 我感覺好奇怪,心裡想,好像我是應聘VC++開發那個崗位了。 於是我等到下午,他拿來機試題目之時,才真正明白,果然是他要安排我從事VC++開發了,題目就是:編寫基於TCP/IP協議網路程序,並實現簡單的聊天程序,而且要連接資料庫。 當時我又失望了。 於是我就提出,我不想做這個題目,因為我是想應聘Linux系統C語言開發的。 就這樣失望的走了。
下面是個人完全能運行的代碼:
伺服器端源碼:
#include<stdio.h>
#include <Winsock2.h>
#pragma comment (lib,"ws2_32.lib")
int main()
{

WORD wVersionRequested;
WSADATA wsaData;
int err;

wVersionRequested = MAKEWORD( 2, 2 );

err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
return 0;
}

if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 ) {
WSACleanup( );
return 0;
}
SOCKET socketServer=socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN addrServer;
addrServer.sin_family=AF_INET;
addrServer.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addrServer.sin_port=htons(6000);
bind(socketServer, (struct sockaddr *)&addrServer, sizeof(struct sockaddr));
listen(socketServer, 5);
SOCKADDR_IN addrClient;
int addrLen=sizeof(SOCKADDR_IN);
char sendBuf[100];
char recvBuf[100];
int i=1;
while(1)
{
printf("伺服器端等待第%d個客戶端連接請求...\n", i++);
SOCKET newsocketServer=accept(socketServer,(struct sockaddr *)&addrClient, &addrLen);
if(newsocketServer!=INVALID_SOCKET)
{
printf("伺服器端與客戶端連接成功...\n");
}
memset(sendBuf,0,100);
sprintf(sendBuf,"Welcome you to come here");
send(newsocketServer, sendBuf, strlen(sendBuf)+1,0);
memset(recvBuf,0,100);
recv(newsocketServer,recvBuf,100,0);
printf("伺服器端收到信息:%s\n",recvBuf);
closesocket(newsocketServer);
}
WSACleanup();
return 0;
}
此文章來自於個人博客: 阿浪博客 http://blog.163.com/wenxianliang08@126/
客戶端源碼:
#include<stdio.h>
#include <Winsock2.h>
#pragma comment (lib,"ws2_32.lib")
int main()
{

WORD wVersionRequested;
WSADATA wsaData;
int err;

wVersionRequested = MAKEWORD( 2, 2 );

err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
return 0;
}

if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 ) {
WSACleanup( );
return 0;
}

SOCKET socketClient=socket(AF_INET,SOCK_STREAM,0);

SOCKADDR_IN addrServer;

addrServer.sin_family=AF_INET;

addrServer.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");

addrServer.sin_port=htons(6000);

char sendBuf[100];

char recvBuf[100];
printf("客戶端向伺服器端連接請求...\n");
int Isconnect=connect(socketClient, (struct sockaddr *)&addrServer, sizeof(struct sockaddr));
if(Isconnect!=0)
{
printf("客戶端無法連接伺服器端...\n");
return 0;
}
printf("客戶端已成功連接伺服器端...\n");
memset(recvBuf,0,100);

recv(socketClient,recvBuf,100,0);
printf("客戶端收到信息:%s\n",recvBuf);
memset(sendBuf,0,100);

sprintf(sendBuf,"Hello , I am Mr Wen !");

send(socketClient, sendBuf, strlen(sendBuf)+1,0);

closesocket(socketClient);

WSACleanup();

return 0;
}

『拾』 怎麼讓一個程序使用代理連接網路

1.首先在網上尋找可用的代理伺服器,記下它的類型、IP、埠2.下載proxycap軟體,安裝,設置請看http://www.yao.com/ccproxy/proxycap.htm3.上網吧

閱讀全文

與如何用編寫程序同意接入網路相關的資料

熱點內容
網路共享中心沒有網卡 瀏覽:547
電腦無法檢測到網路代理 瀏覽:1403
筆記本電腦一天會用多少流量 瀏覽:696
蘋果電腦整機轉移新機 瀏覽:1400
突然無法連接工作網路 瀏覽:1157
聯通網路怎麼設置才好 瀏覽:1257
小區網路電腦怎麼連接路由器 瀏覽:1138
p1108列印機網路共享 瀏覽:1236
怎麼調節台式電腦護眼 瀏覽:790
深圳天虹蘋果電腦 瀏覽:1025
網路總是異常斷開 瀏覽:639
中級配置台式電腦 瀏覽:1092
中國網路安全的戰士 瀏覽:656
同志網站在哪裡 瀏覽:1450
版觀看完整完結免費手機在線 瀏覽:1482
怎樣切換默認數據網路設置 瀏覽:1141
肯德基無線網無法訪問網路 瀏覽:1328
光纖貓怎麼連接不上網路 瀏覽:1570
神武3手游網路連接 瀏覽:991
局網列印機網路共享 瀏覽:1021