C 網路程式設計

2021-07-15 20:31:03 字數 2268 閱讀 9524

// server.cpp : 定義控制台應用程式的入口點。

#include "stdafx.h"

#include #include #include #include "filelog.h"

#include "time.h"

usingnamespace std;

#pragma comment(lib,"ws2_32.lib")

//多執行緒呼叫的方法只有乙個指標型的引數,有時候需要多個引數,所以定義乙個結構,引數作為結構的字段

typedef struct _receivestruct

} receivestruct;

//獲取今天日期的字串

string getdate(constchar*format)

//接收資料執行緒

void receive(pvoid param)

buf[bytes]='\0';

cout<<"客戶端說:"write("客戶端 ").writeline(getdate("%y-%m-%d %h:%m:%s").c_str()).writeline(buf);//記錄聊天內容

}}//獲取本機ip

in_addr gethostname(void)

//啟動伺服器

socket startserver(void)

short port=1986;

struct sockaddr_in serveraddress;

//初始化指定的記憶體區域

memset(&serveraddress,0,sizeof(sockaddr_in));

serveraddress.sin_family=af_inet;

serveraddress.sin_addr.s_un.s_addr = htonl(inaddr_any);

serveraddress.sin_port = htons(port);

//繫結

if(bind(serversocket,(sockaddr*)&serveraddress,sizeof(serveraddress))==socket_error)

buf[bytes]='\0';

cout<<"伺服器說:"<>ipstr;

unsigned long ip;

if((ip=inet_addr(ipstr))==inaddr_none)

return ip;

}//鏈結伺服器

void connect(socket &sock)

void unlock()

public:

filelog()

~filelog()

deletecriticalsection(&cs);//刪除臨界區

}bool open(constchar*filename);//開啟檔案

filelog& write(constchar*content);//向檔案中寫入內容

filelog& writeline(constchar*content);//向檔案中寫入內容

bool read(char*buf,int size);//讀檔案內容

bool close();//關閉檔案

};

#include "stdafx.h"

#include "filelog.h"

//開啟檔案

bool filelog::open(constchar*filename)

}return false;

}//寫檔案 返回當前物件的引用,實現連線操作

filelog& filelog::write(constchar*content)

//開始的時候少寫了這句,由於加的鎖沒有釋放,乙個執行緒占用之後,導致其他執行緒只能一直等待,好久都沒有找到原因。

unlock();

return*this;

} //寫入一行

filelog& filelog::writeline(constchar*content)

unlock();

return filelog::write("\r\n");

} //讀檔案內容

bool filelog::read(char*buf,int size)

return isok;

}//關閉檔案

bool filelog::close()

unlock();

return isok;

}

C 網路程式設計

首先我們解釋一下在網路程式設計時候,經常遇到的幾個概念 同步 synchronous 非同步 asynchronous 阻塞 block 和非阻塞 unblock 所謂同步方式,就是傳送方傳送資料報以後,不等接受方響應,就接著傳送下乙個資料報。非同步方式就是當傳送方傳送乙個資料報以後,一直等到接受方...

C 網路程式設計

1 ip網路中的每台主機都有乙個ip位址 它是邏輯位址 網際網路上的ip位址具有全球唯一性 4個位元組,192.168.0.16 2 osi將網路分為 tcp ip模型 應用層 應用層 表示層會話層 傳輸層 傳輸層 網路層 網路層 資料鏈路層 網路介面 物理層相同層次之間不可以直接通訊,是虛擬通訊。...

c 網路程式設計

microsoft.framework為應用程式訪問inter 提供了分層的 可擴充套件的以及受管轄的網路服務,其名字空間system.和system.sockets包含豐富的類可以開發多種網路應用程式。類採用的分層結構允許應用程式在不同的控制級別上訪問網路,開發人員可以根據需要選擇針對不同的級別編...