求个简单的Socket代码

a121984376 2009-10-10 10:36:32
谁给一个非阻塞的Socket代码啊?

要求简单一点,带有注释的,

我的结贴率很高的~~~请大家用于回帖~~~:)
...全文
145 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cbzxc1986 2010-03-26
  • 打赏
  • 举报
回复
给你个现成的,下载后自己研究吧。
http://download.csdn.net/source/403559
wanjingwei 2009-10-10
  • 打赏
  • 举报
回复
u_long iMode = 1;
ioctlsocket(SerSocket, FIONBIO, &iMode);
a121984376 2009-10-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wanjingwei 的回复:]
引用 3 楼 a121984376 的回复:
引用 2 楼 wanjingwei 的回复:
http://www.cppblog.com/yunboy4/archive/2009/07/26/91231.html
服务端和客户端都有


为什么客户端没有recv呢??

他的服务端没只有接收数据没写发送数据,客户端就只写了个发送数据。这个自己可以加的
[/Quote]


恕我菜鸟,我也没看出来哪里有非阻塞的代码啊``
wanjingwei 2009-10-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 a121984376 的回复:]
引用 2 楼 wanjingwei 的回复:
http://www.cppblog.com/yunboy4/archive/2009/07/26/91231.html
服务端和客户端都有


为什么客户端没有recv呢??
[/Quote]
他的服务端没只有接收数据没写发送数据,客户端就只写了个发送数据。这个自己可以加的
a121984376 2009-10-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lihan6415151528 的回复:]
C/C++ code
简单的socket编程例子/*echocli.c --echo client*/
#include<stdio.h>
#include<sys/types.h>
#include<sys/sockets.h>
#include<net/netinet.h>#define BUFLEN 255int main(int ¡­
[/Quote]

我很到很多例子用了select函数`````
lihan6415151528 2009-10-10
  • 打赏
  • 举报
回复

简单的socket编程例子
/*echocli.c --echo client*/
#include <stdio.h>
#include <sys/types.h>
#include <sys/sockets.h>
#include <net/netinet.h>
#define BUFLEN 255
int main(int argc,char** argv)
{
struct sockaddr_in
{
uint8_t sin_len;
sa_family_t sin_family;
in_port_t sin_port;
struct in_addr sin_addr;
char sin_zero[8];
}
struct socketaddr_in servaddr; /*服务方socket地址结构 */
int sockfd,h;
char recmsg[BUFLEN+1];
char errmsg[]="echo doesn't function.\n";

if (argc!=2) {
printf("%s<IP address>\n",arfv[0]);
exit(0);
}
sockfd=socket(AF_INET,SOCK_STREAM,0); /*生成一个socket */
if(sockfd<0) {
fprintf(stderr,"socket creating error!\n");
exit(1);
}
memset(&servaddr,0,sizeof(struct sockaddr_in));
servaddr.sin_family=AF_INET; /*使用ipv4协议族的socket*/
servaddr.sin_port= htons(7); /*Echo服务的周知口*/
if(inet_pton(AF_INET,arfv[1],&servaddr.sin_addr) <=0)
{
/*通过inet_pton获得ip地址*/
printf("Wrong IP address!\n");
exit(0);
}
if(connet(sockfd,(struct sockaddr*) (&servaddr),sizeof(struct sockaddr_in) )<0)
{
/*connet将socket这个套接字与指定的ip的地址和断口号连接*/
printf("Connection Failure!\n");
exit(2);
}
printf("Connected to host %s\n",argv[1]);
while (fgets(recmsg,BUFLEN ,stdin) !=NULL)
{ /*从终端读入一行*/
write (sockfd,recmsg,strlen(recmsg) );/* 向sockfd写入*/
printf("sent:%s",recmsg);
strcpy(recmsg,errmsg);
n=read(sockfd,recmsg,BUFLEN); /*从socket读出*/
if(n>0)
{
recmsg[n]=0;
printf("echo:%s",recmsg);
}
else if(n==-1)
{
frpintf(stderr,"read error in client socket!\n");
exit(3);
}
}
exit(0);
}


a121984376 2009-10-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wanjingwei 的回复:]
http://www.cppblog.com/yunboy4/archive/2009/07/26/91231.html
服务端和客户端都有
[/Quote]

为什么客户端没有recv呢??
wanjingwei 2009-10-10
  • 打赏
  • 举报
回复
http://www.cppblog.com/yunboy4/archive/2009/07/26/91231.html
服务端和客户端都有
a121984376 2009-10-10
  • 打赏
  • 举报
回复
补充: 只需要客户端的就可以了```

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧