显示客户端问候语之后,服务器向客户端发送应答。SendLine()函数用于发送数据。
//向客户端发送数据
strcpy(bufSend, "Hello,Client!/n");
if (!SendLine(sClient, bufSend))
{
return ExitClient(SERVER_API_ERROR);
}
在SendLine函数中,调用send()函数将"Hello,Client!/n"字符串发送给客户端。当该函数返回SOCKET_ERROR时,调用WSAGetLastError()函数得到错误代码,并调用ShowSocketMsg()函数将错误的字符串显示出来。SendLine()函数程序清单如下。
/*
* 发送一行数据
*/
BOOL SendLine(SOCKET s, char* str)
{
int retVal;//返回值
retVal = send(s, str, strlen(str), 0); //一次发送
//错误处理
if (SOCKET_ERROR == retVal)
{
int nErrCode = WSAGetLastError(); //错误代码
if (WSAENOTCONN == nErrCode)
{
ShowSocketMsg("The socket is not connected!");
}else if(WSAESHUTDOWN == nErrCode)
{
ShowSocketMsg("The socket has been shut down!");
}else if (WSAETIMEDOUT == nErrCode)
{
ShowSocketMsg("The connection has been dropped!");
}else{}
return FALSE; //发送失败
}
return TRUE; //发送成功
}
本文介绍了在服务器端如何向客户端发送数据,特别是在一个socket服务器中。通过SendLine函数,服务器能够发送‘Hello,Client!/n’的问候语。当send()函数返回错误时,程序会捕获错误代码并显示相应的错误信息,如未连接、已关闭或超时等。"
79666549,6730608,使用libiconv在64位Linux下转换GBK到UTF-8,"['Linux', '编码', 'libiconv', 'GBK', 'UTF-8']
427

被折叠的 条评论
为什么被折叠?



