win32 SocketClick网络编程连接
本人是第一次写博客,这一次的体验让我觉得眼界大开啊,这写博客工具简直666!
- 这次主要是写的关于《C语言也能干大事》这个学习视频的Socket网络编程。本人是菜鸟一枚,希望尽全力写的内容能少一点错误,少为大家带来不便!但是技术有限,如果你发觉有错误或者描述不当的地方,请联系我,做一个好人!
- 开发工具是VC6
- 程序是Win32 Application
开发前需要导入的库和函数
导入的函数 #include "winsock2.h"
导入的库 “工程--设置--连接”,在“对象和库模块”处添加WS2_32.lib ,记住要和前面一个库名间隔一个空格
代码块
Socket连接代码:
WSADATA wsaData;
//初始化Socket库
WSAStartup(MAKEWORD(2,0),&wsaData);
//创建Socket
SOCKET sock = socket(AF_INET, SOCK_STREAM,IPPROTO_TCP);
SOCKADDR_IN sa;
sa.sin_family=AF_INET;
//设置socket连接服务器端的端口
sa.sin_port = htons(IPPORT_SMTP);
sa.sin_addr.S_un.S_addr = inet_addr(要连接的IP);
if(connect(sock, (SOCKADDR *)&sa, sizeof(sa)) == SOCKET_ERROR)
{
ShowError();
return;
}
//连接后的操作可以写在下面
//关闭连接
closesocket(sock);
WSACleanup();
ShowError代码:
void ShowError()
{
TCHAR * lpMsgBuf;
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|
FORMAT_MESSAGE_FROM_SYSTEM,
NULL,GetLastError(),
MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),
(LPTSTR)&lpMsgBuf,
0,NULL);
MessageBox(NULL, lpMsgBuf, "", MB_ICONERROR);
}
接收发送消息代码:
//接收返回消息
TCHAR recv_buff[256];
ZeroMemory(recv_buff, sizeof(recv_buff)/sizeof(TCHAR));
recv(sock, recv_buff,sizeof(recv_buff)/sizeof(TCHAR), 0);
MessageBox(NULL, recv_buff, TEXT("返回消息"), MB_OK);
//发送消息
TCHAR send_buff[] = "QUIT\n";
//ZeroMemory(send_buff, sizeof(send_buff)/sizeof(TCHAR));
send(sock, send_buff, sizeof(send_buff)/sizeof(TCHAR), 0);