..
printf(\)失败,错误号:%d\\n\ WSACleanup(); return -1; }
//对于流式套接字,需要先建立连接
//其实也可以使用connect(),send(),recv()等函数在windows里
面一样实现数据报套接字功能
if(socket_type != SOCK_DGRAM) {
printf(\正在连接到: %s\\n\if (connect(conn_socket,(struct
sockaddr*)&server,sizeof(server)) == SOCKET_ERROR)
{
printf(\失败,错误
号:%d\\n\
a
..
closesocket(conn_socket);//如果创建失败,就关闭连接套接字 WSACleanup(); return -1;
}
}
while(1) {
//得到要发送的信息字符串
puts(\输入送到服务器的信息:\ gets(Buffer);
if(!strlen(Buffer)) //如果没有输入信息,继续循环
continue;
//发送网络信息
if(socket_type != SOCK_DGRAM)
a
..
retval = send(conn_socket, Buffer, strlen(Buffer)+1, 0); //
面向tcp,类似BSD write()
else
retval = sendto(conn_socket, Buffer,
//发送字符串的时候,须将字符串的结束符
strlen(Buffer)+1, 0, \\0发送
(struct sockaddr*)&server, //面向UDP
sizeof(server));
if (retval == SOCKET_ERROR)
{
printf(\发送失败,错误号: %d\\n\ break; }
else
printf(\发送信息:%s\\n\
//接收网络信息
a
..
i = sizeof(from);
if(socket_type != SOCK_DGRAM)
retval = recv(conn_socket, Buffer, sizeof(Buffer), 0 );//面向
tcp,类似BSD read()
else
retval = recvfrom(conn_socket, Buffer,
sizeof(Buffer), 0,
(struct sockaddr*)&from, &i);
//面向UDP
if (retval == SOCKET_ERROR)
{
printf(\接收信息失败,错误号:%d\\n\ break; }
else if (retval == 0) // 对于面向连接的套接字,需要判断对方是否关闭连接
a
..
{
printf(\服务器关闭连接\\n\ break; } }
//关闭套接字
else //正确接收到网络信息
printf(\收到 %d 字节信息:%s \\n\
//程序的一个退出条件 if(!stricmp(Buffer, \
break;
closesocket(conn_socket); WSACleanup(); }
return 0;
a
管理系统中计算机应用实践报告



