c 網路程式設計

2021-06-16 18:51:19 字數 2335 閱讀 1618

客戶端:

// client.cpp

#include "stdafx.h"

#include #include #include using

namespace std;

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

//接收資料

void receive(pvoid param)

buf[bytes]='\0';

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

unsigned long ip;

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

return ip;}

//鏈結伺服器

void connect(socket &sock)

} receivestruct;

//獲取今天日期的字串

string getdate(const char*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)

void unlock()

public:

filelog()

~filelog()

deletecriticalsection(&cs);

//刪除臨界區

}

bool open(const char*filename);

//開啟檔案

filelog& write(const char*content);

//向檔案中寫入內容

filelog& writeline(const char*content);

//向檔案中寫入內容

bool read(char*buf,int size);

//讀檔案內容

bool close();

//關閉檔案

};

filelog.cpp:

#include "stdafx.h"

#include "filelog.h"

//開啟檔案

bool filelog::open(const char*filename)

} return false;}

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

filelog& filelog::write(const char*content)

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

unlock();

return*this;

} //寫入一行

filelog& filelog::writeline(const char*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包含豐富的類可以開發多種網路應用程式。類採用的分層結構允許應用程式在不同的控制級別上訪問網路,開發人員可以根據需要選擇針對不同的級別編...