zoukankan
html css js c++ java
WinSock UDP通讯实例
下载
#include
<
WinSock2.h
>
#include
<
stdio.h
>
#define PORT
8888
int
main()
//
server
{
WSADATA wsaData;
int
Ret
=
WSAStartup(MAKEWORD(
2
,
2
),
&
wsaData);
printf(
"
Server
!\n
"
);
if
(Ret
!=
0
)
{
printf(
"
无法初始化winsock.\n
"
);
WSACleanup();
}
else
{
//
printf("初始化winsock成功\n");
}
if
( LOBYTE( wsaData.wVersion )
!=
2
||
HIBYTE( wsaData.wVersion )
!=
2
)
{
WSACleanup( );
return
1
;
}
SOCKET socket
=
::socket(AF_INET,SOCK_DGRAM,IPPROTO_IP);
sockaddr_in addr;
addr.sin_addr.S_un.S_addr
=
INADDR_ANY;
addr.sin_family
=
AF_INET;
addr.sin_port
=
ntohs(PORT);
if
(socket
==
INVALID_SOCKET)
{
printf(
"
socket Error!
"
);
}
int
rs
=
bind(socket,(sockaddr
*
)
&
addr,sizeof(addr));
if
(rs
!=
0
)
{
printf(
"
bind failed!
"
);
return
1
;
}
char
buf[
200
]
=
"
\0
"
;
char
temp[
200
]
=
"
\0
"
;
sockaddr_in addrcl;
int
len
=
sizeof(sockaddr);
while
(
1
)
{
recvfrom(socket,buf,sizeof(buf),
0
,(sockaddr
*
)
&
addrcl,
&
len);
//
用新建的地址结构保存客户端的信息
sprintf(temp,
"
%s:%s
"
,inet_ntoa(addrcl.sin_addr),buf);
sendto(socket,temp,strlen(temp)
+
1
,
0
,(sockaddr
*
)
&
addrcl,sizeof(addr));
if
(strcmp(buf,
"
srvexit
"
)
==
0
)
{
break
;
}
printf(
"
%s
"
,buf);
}
closesocket(socket);
WSACleanup();
printf(
"
exit\n
"
);
return
0
;
}
#include
<
WinSock2.h
>
#include
<
stdio.h
>
#define PORT
8888
int
main()
{
WSADATA wsaData;
int
Ret
=
WSAStartup(MAKEWORD(
2
,
2
),
&
wsaData);
printf(
"
Client
..!\n
"
);
if
(Ret
!=
0
)
{
printf(
"
无法初始化winsock.\n
"
);
WSACleanup();
}
else
{
//
printf("初始化winsock成功\n");
}
SOCKET socketc
=
::socket(AF_INET,SOCK_DGRAM,IPPROTO_IP);
sockaddr_in addr;
addr.sin_addr.S_un.S_addr
=
inet_addr(
"
127.0.0.1
"
);
addr.sin_family
=
AF_INET;
addr.sin_port
=
ntohs(PORT);
if
(socketc
==
INVALID_SOCKET)
{
printf(
"
socket Error!
"
);
}
int
len
=
sizeof(sockaddr);
while
(
1
)
//
client
{
char
buf[
200
]
=
"
\0
"
;
char
rbuf[
300
]
=
"
\0
"
;
printf(
"
\n:
"
);
scanf(
"
%s
"
,
&
buf);
sendto(socketc,buf,strlen(buf)
+
1
,
0
,(SOCKADDR
*
)
&
addr,len);
//
用回原来的地址结构
recvfrom(socketc,rbuf,sizeof(rbuf),
0
,(SOCKADDR
*
)
&
addr,
&
len);
if
(strcmp(rbuf,
"
exit
"
)
==
0
)
{
break
;
}
printf(
"
%s
"
,rbuf);
}
closesocket(socketc);
WSACleanup();
printf(
"
end\n
"
);
return
0
;
}
查看全文
相关阅读:
索引碎片整理
SQL Server表分区案例
SQL分页查询语句
SQL Server表分区
SQL Server优化
SQLSERVER中WITH(NOLOCK)详解
作业四
第三次k均值
机器学习第二次作业
机器学习
原文地址:https://www.cnblogs.com/ahuo/p/890826.html
最新文章
第七周
补--第六周
补--第五周
补--第四周
价值观作业
关于C语言的问卷调查
读《世界是数字的》有感 15级软工4班 李苏娴
2016.04.29-2016.05.05这周工作时间和内容
2016.04.22-2016.04.28这周工作时间和内容
2016.04.15-2016.04.21这周工作时间和内容
热门文章
2016.04.8-2016.04.14这周工作时间和内容
代码复审核查表
中国历史上成功的两个人合作、改进、提高的例子
2016.4.1—2016.4.7这周的学习时间和内容
关于结对编程的感想
2016.3.25—2016.3.31这周的学习时间和内容
Asp.net 导入Excel(服务器不带Office)
大型高并发高负载网站的系统架构[转载]
解决C#导出excel异常来自 HRESULT:0x800A03EC的方法 .
SQL Server 锁表说明
Copyright © 2011-2022 走看看