-
大小: 3KB文件類型: .zip金幣: 2下載: 0 次發(fā)布日期: 2021-05-28
- 語(yǔ)言: 其他
- 標(biāo)簽:
資源簡(jiǎn)介
socket(網(wǎng)絡(luò)套接字)傳輸圖片

代碼片段和文件信息
#include?
#include?
#include?
#include?
#pragma?comment(lib“ws2_32.lib“)??
using?namespace?std;
struct?Data
{
char?message[2000];
int?rest;
}data;
int?main()
{
WORD?wVersionRequested;
WSADATA?wsaData;
int?result;
SOCKET?sConnect;
struct?sockaddr_in?saServer;
ifstream?sendPicture(“2.bmp“?ios::in?|?ios::binary);
/************************* 構(gòu)建傳輸文件信息?*************************/
sendPicture.seekg(0?std::ios_base::end);
int?pictureLengh?=?sendPicture.tellg();
sendPicture.seekg(0?std::ios_base::beg);
/************************* 構(gòu)建服務(wù)器地址信息?*************************/
saServer.sin_family?=?AF_INET;?//地址家族??
saServer.sin_port?=?htons(9210);?//服務(wù)器端口
saServer.sin_addr.S_un.S_addr?=?inet_addr(“127.0.0.1“);//服務(wù)器地址
/************************* WinSock初始化?*************************/
wVersionRequested?=?MAKEWORD(2?2);
result?=?WSAStartup(wVersionRequested?&wsaData);
if?(result?!=?0)
{
printf(“WSAStartup()?failed!\n“);
return?0;
}
//確認(rèn)WinSock?DLL支持版本2.2??
if?(LOBYTE(wsaData.wVersion)?!=?2?||?HIBYTE(wsaData.wVersion)?!=?2)
{
WSACleanup();
printf(“Invalid?WinSock?version!\n“);
return?0;
}
/*************************? ?創(chuàng)建Socket???*************************/
sConnect?=?socket(AF_INET?SOCK_STREAM?0);
if?(sConnect?==?INVALID_SOCKET)
{
WSACleanup();
cout?<“socket()?faild!“?< return?0;
}
/*************************? ?連接服務(wù)器???*************************/
result?=?connect(sConnect?(struct?sockaddr?*)&saServer?sizeof(saServer));
if?(result?==?SOCKET_ERROR)
{
printf(“connect()?failed!\n“);
closesocket(sConnect);?//關(guān)閉套接字??
WSACleanup();
return?0;
}
/*************************??????傳輸??????*************************/
cout?<“連接服務(wù)器成功“?< int?num?=?1;
while?(1)
{
sendPicture.read(data.message?1024);
pictureLengh?-=?1024;
if?(pictureLengh?<=?0)
data.rest?=?0;
else
data.rest?=?1;
result?=?send(sConnect?(char?*)&data?sizeof(struct?Data)?0);
cout?<“發(fā)送第“?< if?(data.rest?==?0){
cout?<“over“?< break;
}
if?(result?==?SOCKET_ERROR)
{
printf(“send()?failed!\n“);
}
}
closesocket(sConnect);
WSACleanup();
return?0;
}
/************************發(fā)送信息****************************/
//strcpy_s(data.name?“QQ小業(yè)“);
//cout?<“please?send?a?message:“?<//cin?>>?data.message;
//if?(strcmp(data.message?“886“)?==?0)?break;
//result?=?send(sConnect?(char?*)&data?sizeof(struct?Data)?0);
//if?(result?==?SOCKET_ERROR)
//{
// printf(“send()?failed!\n“);
//}
//
///************************接收信息****************************/
//result?=?recv(sConnect?(char?*)&data?sizeof(struct?Data)?0);
//if?(result?==?SOCKET_ERROR)
//{
// printf(“recv()?failed!\n“);
// return?0;
//}
//if?(result?==?0)?//客戶端已經(jīng)關(guān)閉連接??
//{
// printf(“Client?has?closed?the?connection\n“);
// break;
//}
//cout?<“
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????3930??2017-08-25?17:21??server.cpp
?????文件????????3198??2017-08-25?17:21??client.cpp
評(píng)論
共有 條評(píng)論