社区
网络及通讯开发
帖子详情
谁有c++builder的网络、数据库 多线程编程资料,源代码??
sensing
2002-10-30 11:35:43
...全文
55
2
打赏
收藏
谁有c++builder的网络、数据库 多线程编程资料,源代码??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
warton
2002-10-30
打赏
举报
回复
关键部分:
开始线程
if (_beginthread(TCP_Echo, STKSIZE, (void*)ssock) <0)
{
printf( "启动新线程失败!\n ");
return -1;
}
_endthread();
// return 0;
break;
warton
2002-10-30
打赏
举报
回复
看我的代码,socket api,多线程:
#define WSVERS MAKEWORD(2, 0)
#define STKSIZE 16536
#include <stdio.h >
#include <winsock2.h >
#include <process.h >
int TCP_Echo(SOCKET,struct sockaddr_in);
int main()
{
struct sockaddr_in fsin, sin;
SOCKET msock, ssock;
struct hostent *hostname;
unsigned short port = 10000;
int alen;
WSADATA wsadata;
if (WSAStartup(WSVERS, &wsadata) != 0)
{
printf( "调用winsock.dll失败! ");
return -1;
}
memset(&sin, 0, sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_addr.s_addr =inet_addr( "192.168.4.142 "); //
sin.sin_port = htons(port);
msock = socket(PF_INET, SOCK_STREAM, 0);
if (msock == INVALID_SOCKET)
{
printf( "create socket error\n ");
return -1;
}
if (bind(msock, (struct sockaddr *)&sin, sizeof(sin))==SOCKET_ERROR)
{
printf( "bind error\n ");
return -1;
}
if (listen(msock, 5)==SOCKET_ERROR)
{
printf( "listen error\n ");
return -1;
}
//hostname=gethostbyaddr(inet_ntoa(sin.sin_addr),8,0);
//printf( "%s\n ",hostname- >h_name);
printf( "本地地址:%s\n ",inet_ntoa(sin.sin_addr));//
printf( "服务器监听端口:%d\n ",ntohs(sin.sin_port));
while(1)
{
alen = sizeof(struct sockaddr);
ssock = accept(msock, (struct sockaddr *)&fsin, &alen);
if (ssock == INVALID_SOCKET)
{
printf( "accept error\n ");
return -1;
}
printf( "有客户连接自 %s\r\n ", inet_ntoa(fsin.sin_addr));
if (_beginthread(TCP_Echo, STKSIZE, (void*)ssock) <0)
{
printf( "启动新线程失败!\n ");
return -1;
}
}
}
//线程要调用的函数:处理客户发送来的数据
int TCP_Echo(SOCKET fd,struct sockaddr_in sin)
{
char buf[4096];
int cc = 0;
memset(buf, 0, sizeof(buf));
strcpy(buf, "Enter 'Q' to exit\r\n ");
if (send(fd, buf, strlen(buf), 0)==SOCKET_ERROR)
{
printf( "echo send error\n ");
return -1;
}
memset(buf, 0, sizeof(buf));
cc = recv(fd, buf, sizeof(buf), 0);
printf( "客户发送的数据:%s\n ", buf);
while(cc!=SOCKET_ERROR && cc > 0)
{
if (send(fd, buf, cc, 0)==SOCKET_ERROR)
{
printf( "echo send error\n ");
break;
}
/* if (send(fd, "\r\n ", 2, 0)==SOCKET_ERROR)
{
printf( "echo send error\n ");
break;
}*/
memset(buf, 0, sizeof(buf));
cc = recv(fd, buf, sizeof(buf), 0);
printf( "客户发送的数据:%s\n ", buf);
if (buf[0]=='Q')
{
_endthread();
// return 0;
break;
}
}
if (cc==SOCKET_ERROR)
printf( "echo recv error\n ");
closesocket(fd);
return 0;
}
C++Builder 5高级实例
编程
实例精解(
源代码
)
《
C++Builder
5高级实例
编程
实例精解》是一本专为
C++Builder
5开发者设计的实践指导书籍,其
源代码
提供了丰富的实例,旨在帮助读者深入理解和掌握
C++Builder
5的高级特性以及实际
编程
技巧。这本书的核心知识点涵盖了...
C++ Builder 5高级
编程
实例精解(光盘、
源代码
、源码)
本书包含光盘,提供了完整的
源代码
,使读者可以直观地看到程序实现的全过程,从而加深对C++ Builder 5特性和API的了解。 C++ Builder 5是Borland公司推出的一款集成开发环境(IDE),它基于C++语言,并结合了VCL...
C++Builder
5
编程
实例与技巧(光盘、
源代码
、源码)
3. **实践
编程
实例**:通过书中给出的实例,实践窗口程序、
数据库
应用、
多线程
、
网络
通信等各种功能的实现。 4. **学习设计模式**:书中可能涉及一些常见的设计模式,如工厂模式、单例模式等,帮助提升代码复用性...
C++Builder
应用开发技术解析程序
源代码
1. **面向对象
编程
**:
C++Builder
基于C++,因此
源代码
会展示类的设计、继承、多态等面向对象
编程
概念。理解如何定义类,如何创建对象,以及如何使用虚函数实现多态性,对于掌握
C++Builder
至关重要。 2. **事件驱动...
C++Builder
深度历险(光盘、
源代码
、源码)
8. **
多线程
和并发
编程
**:了解如何在
C++Builder
中实现
多线程
,提高程序执行效率,同时处理多个任务。 9. **内存管理和优化**:深入讨论
C++Builder
中的内存管理机制,以及如何编写高效的、无内存泄漏的代码。 10. ...
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章