TCP(SOCKETS)编程 C/C++实现
通信
Server:
#pragma comment(lib, "ws2_32.lib")
#include <Winsock2.h>
#include <stdio.h>
void main()
{
//版本协商
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD(1,1); //0x0101
err = WSAStartup(wVersionRequested,&wsaData);
if(err!=0)
{
return 0;
}
if(LOBYTE(wsaData.wVersion)!=1 || HIBYTE(wsaData.wVersion)!=1) //wsaData.wVersion!=0x0101
{
WSACleanup();
return 0;
}
//创建Socket
SOCKET sockSvr = socket(AF_INET,SOCK_STREAM,0);
//创建IP地址和端口
SOCKADDR_IN addrSvr;
addrSvr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
addrSvr.sin_family = AF_INET;
addrSvr.sin_port = htons(6000);
//绑定端口监听
bind(sockSvr,(SOCKADDR*)&addrSvr,sizeof(SOCKADDR));
listen(sockSvr,5);
sockaddr_in addrClient;
int len = sizeof(sockaddr);
while(true)
{
//阻塞方法,获得一个客户Socket连接
SOCKET sockConn = accept(sockSvr,(sockaddr*)&addrClient,&len);
char sendbuffer[128];
sprintf(sendbuffer,"Welcom %s!",inet_ntoa(addrClient.sin_addr));
//向客户Socket发送数据
send(sockConn,sendbuffer,strlen(sendbuffer)+1,0);
char recvbuffer[128];
//从客户Soc接受数据
recv(sockConn,recvbuffer,128,0);
printf("%s\n",recvbuffer);
//关闭Socket
closesocket(sockConn);
}
closesocket(sockSvr);
//释放Winsock资源
WSACleanup();
return 0;
}
client:
#pragma comment (lib,"ws2_32.lib")
#include <Winsock2.h>
#include <stdio.h>
void main()
{
//版本协商
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD(1,1); //0x0101
err = WSAStar
相关文档:
操作函数,所在函数库为string.h、mem.h
mem…操作存贮数组
void *memccpy(void *destin,void *source,unsigned char ch,unsigned n)
void *memchr(void *s,char ch,unsigned n)
void *memcmp(void *s1,void *s2,unsigned n)
int memicmp(void *s1,void *s2,unsigned n)
void *memmove(void *destin ......
C和C++的点滴积累(1)
1. mfc 编程中存在着如果出现“内存不足”的对话框,一种情况是在申请内存的时候出现问题,也就是例如:char *pChar = new char[num]; 但此时num 为零或者负 ......
引言
最近笔者一直在做JPEG的解码工作,发现用完全使用哈夫曼树进行解码比较费时,而使用表结构存储编码和值的对应关系比较快捷,但是也存在比较难处理的地方,比如解码工作通常是以位为单位的操作,这里必然会涉及到移位操作,而笔者之前对位的操作很少,经验很欠缺,经过这次历练终于发现了一个自己曾经忽视的东西,那就 ......
函数名: abs 功 能: 求整数的绝对值
用 法: int abs(int i);
程序例:
#include <stdio.h>
#include <math.h>
int main(void)
{
int number = -1234;
printf("number: %d absolute value: %d\n", number, abs(number));
return 0;
}
函数名: atof
功 ......