有容乃大 无欲则刚
C++博客
首页
新随笔
联系
聚合
管理
10 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
给我留言
查看公开留言
查看私人留言
随笔档案
(10)
2009年7月 (5)
2009年6月 (5)
最新随笔
1. 字符聊天程序
2. C++ TCP 通信
3. C++ UDP 通信
4. Socket
5. Hello word
6. C++ HelloWord 应该注意的问题
7. 七种访问控件的方式
8. 消息的分类
9. VS 快键总结
10. 画线程序笔记
搜索
积分与排名
积分 - 8681
排名 - 1250
最新随笔
1. 字符聊天程序
2. C++ TCP 通信
3. C++ UDP 通信
4. Socket
5. Hello word
6. C++ HelloWord 应该注意的问题
7. 七种访问控件的方式
8. 消息的分类
9. VS 快键总结
10. 画线程序笔记
最新评论
1. re: C++ UDP 通信
good!
--yh
阅读排行榜
1. C++ UDP 通信(3017)
2. C++ TCP 通信(2657)
3. C++ HelloWord 应该注意的问题(865)
4. Socket(346)
5. 字符聊天程序(345)
评论排行榜
1. C++ UDP 通信(1)
2. C++ TCP 通信(0)
3. 字符聊天程序(0)
4. 画线程序笔记(0)
5. VS 快键总结(0)
字符聊天程序
#include
<
Winsock2.h
>
#include
<
stdio.h
>
#pragma comment(lib,
"
ws2_32.lib
"
)
void
main()
{
WORD wVersionRequested;
WSADATA wsaData;
int
err;
wVersionRequested
=
MAKEWORD(
1
,
1
);
err
=
WSAStartup(wVersionRequested,
&
wsaData);
if
(err
!=
0
)
{
return
;
}
if
(LOBYTE(wsaData.wVersion)
!=
1
||
HIBYTE(wsaData.wVersion)
!=
1
)
{
WSACleanup();
return
;
}
SOCKET sockSrv
=
socket(AF_INET,SOCK_DGRAM,
0
);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr
=
htonl(INADDR_ANY);
addrSrv.sin_family
=
AF_INET;
addrSrv.sin_port
=
htons(
6000
);
bind(sockSrv,(SOCKADDR
*
)
&
addrSrv,
sizeof
(SOCKADDR));
char
recvBuf[
100
];
char
sendBuf[
100
];
char
tempBuf[
200
];
SOCKADDR_IN addrClient;
int
len
=
sizeof
(SOCKADDR);
while
(
1
)
{
recvfrom(sockSrv,recvBuf,
100
,
0
,(SOCKADDR
*
)
&
addrClient,
&
len);
if
(
'
q
'
==
recvBuf[
0
])
{
sendto(sockSrv,
"
q
"
,strlen(
"
q
"
)
+
1
,
0
,(SOCKADDR
*
)
&
addrClient,len);
printf(
"
Chat end!%n
"
);
break
;
}
sprintf(tempBuf,
"
%s say:%s
"
,inet_ntoa(addrClient.sin_addr),recvBuf);
printf(
"
%s\n
"
,tempBuf);
printf(
"
Please input data:\n
"
);
gets(sendBuf);
sendto(sockSrv,sendBuf,strlen(sendBuf)
+
1
,
0
,(SOCKADDR
*
)
&
addrClient,len);
}
closesocket(sockSrv);
WSACleanup();
}
#include
<
Winsock2.h
>
#include
<
stdio.h
>
#pragma comment(lib,
"
ws2_32.lib
"
)
void
main()
{
WORD wVersionRequested;
WSADATA wsaData;
int
err;
wVersionRequested
=
MAKEWORD(
1
,
1
);
err
=
WSAStartup(wVersionRequested,
&
wsaData);
if
(err
!=
0
)
{
return
;
}
if
(LOBYTE(wsaData.wVersion)
!=
1
||
HIBYTE(wsaData.wVersion)
!=
1
)
{
WSACleanup();
return
;
}
SOCKET sockClient
=
socket(AF_INET, SOCK_DGRAM,
0
);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr
=
inet_addr(
"
127.0.0.1
"
);
addrSrv.sin_family
=
AF_INET;
addrSrv.sin_port
=
htons(
6000
);
char
recvBuf[
100
];
char
sendBuf[
100
];
char
tempBuf[
200
];
int
len
=
sizeof
(SOCKADDR);
while
(
1
)
{
printf(
"
please input data:\n
"
);
gets(sendBuf);
sendto(sockClient,sendBuf,strlen(sendBuf)
+
1
,
0
,
(SOCKADDR
*
)
&
addrSrv,len);
recvfrom(sockClient,recvBuf,
100
,
0
,(SOCKADDR
*
)
&
addrSrv,
&
len);
if
(
'
q
'
==
recvBuf[
0
])
{
sendto(sockClient,
"
q
"
,strlen(
"
q
"
)
+
1
,
0
,
(SOCKADDR
*
)
&
addrSrv,len);
printf(
"
Chat end!\n
"
);
break
;
}
sprintf(tempBuf,
"
%s say:%s
"
,inet_ntoa(addrSrv.sin_addr),recvBuf);
printf(
"
%s\n
"
,tempBuf);
}
closesocket(sockClient);
WSACleanup();
}
posted on 2009-07-22 00:07
huyvanpull
阅读(345)
评论(0)
编辑
收藏
引用
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
Powered by:
C++博客
Copyright © huyvanpull