易截截图软件、单文件、免安装、纯绿色、仅160KB

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


相关文档:

C函数库介绍: string.h、mem.h

操作函数,所在函数库为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标准

developerWorks 中国 > Linux > 用 C99 进行开放源代码的开发您的 C 代码符合标准吗? 文档选项 打印本页 将此页作为电子邮件发送 级别: 初级 Peter Seebach (developerworks@seebs.plethora.net), 自由作家 2004 年 4 月 01 日 C99 是什么?谁需要它?它可用了吗?Poter Seebach 讨论了 ISO C 标准的 1999 年修订版 ......

c/c++ string


1.本章思维导图:



Example1:
char
*strcpy(char *target, const char *source) {
  char *t = target;

  // Copy the contents of source into target.
 
while(*source) *target++ = *source++;
  // Null-terminate the
target.
  *ta ......

使用C语言扩展Python(一)

开发环境:Ubuntu9.10,python2.6,gcc4.4.11,ubuntu下的python运行包和开发包是分开的,因此需要在新利得里面安装python-all-dev,从而可以在代码中引用python的头文件和库。2.下面是一个最简单的可以供python调用的c扩展模块,假设c程序文件名为foo.c:代码#include <Python.h>
static PyObject* foo_b ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号