社区
C语言
帖子详情
请问哪位有C语言的SOCKET简单程序啊
xiaoyetao08
2006-08-24 01:58:56
请问谁有C语言下的SOCKET源代码啊?只要能接能收就行。谢谢了:)火急
...全文
219
2
打赏
收藏
请问哪位有C语言的SOCKET简单程序啊
请问谁有C语言下的SOCKET源代码啊?只要能接能收就行。谢谢了:)火急
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xvbn_2003
2006-08-25
打赏
举报
回复
网上多的是,自己找呀!
xddzccn
2006-08-24
打赏
举报
回复
/*******服务器程序 TCPServer.c ************/
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <netdb.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#define WAITBUF 1
int main()
{
int sockfd,new_fd;
struct sockaddr_in server_addr;
struct sockaddr_in client_addr;
int sin_size,portnumber;
char hello[]="Socket communication world!\n";
int i;
//if(argc!=2)
//{
//fprintf(stderr,"Usage:%s portnumber\a\n",argv[0]);
// exit(1);
//}
/*端口号不对,退出*/
//if((portnumber=atoi(argv[1]))<0)
//{
// fprintf(stderr,"Usage:%s portnumber\a\n",argv[0]);
//exit(1);
//}
/*服务器端开始建立socket描述符*/
if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)
{
fprintf(stderr,"Socket error:%s\n\a",strerror(errno));
exit(1);
}
portnumber=23;
/*服务器端填充 sockaddr结构*/
bzero(&server_addr,sizeof(struct sockaddr_in));
server_addr.sin_family=AF_INET;
/*自动填充主机IP*/
server_addr.sin_addr.s_addr=INADDR_ANY;
server_addr.sin_port=htons(portnumber);
/*捆绑sockfd描述符*/
if(bind(sockfd,(struct sockaddr *)(&server_addr),sizeof(struct sockaddr))==-1)
{
fprintf(stderr,"Bind error:%s\n\a",strerror(errno));
exit(1);
}
/*监听sockfd描述符*/
if(listen(sockfd, WAITBUF)==-1)
{
fprintf(stderr,"Listen error:%s\n\a",strerror(errno));
exit(1);
}
while(1)
{
/*服务器阻塞,直到客户程序建立连接*/
sin_size=sizeof(struct sockaddr_in);
if((new_fd=accept(sockfd,(struct sockaddr *)(&client_addr),&sin_size))==-1)
{
fprintf(stderr,"Accept error:%s\n\a",strerror(errno));
exit(1);
}
/*可以在这里加上自己的处理函数*/
fprintf(stderr,"Server get connection from %s\n",inet_ntoa(client_addr.sin_addr));
if(send(new_fd,hello,strlen(hello),0)==-1)
{
fprintf(stderr,"Write Error:%s\n",strerror(errno));
exit(1);
}
close(new_fd);
}
/*这个通信已经结束*/
/*循环下一个*/
close(sockfd);
exit(0);
}
/******* 客户端程序 TCPClient.c ************/
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <netdb.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#define RECVBUFSIZE 1024
int main(int argc, char *argv[])
{
int sockfd;
char buffer[RECVBUFSIZE];
struct sockaddr_in server_addr;
struct hostent *host;
int portnumber,nbytes;
*if(argc!=3)
{
fprintf(stderr,"Usage:%s hostname portnumber\a\n",argv[0]);
exit(1);
}
if((portnumber=atoi(argv[2]))<0)
{
fprintf(stderr,"Usage:%s hostname portnumber\a\n",argv[0]);
exit(1);
}
/*客户程序开始建立 sockfd描述符*/
if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)
{
fprintf(stderr,"Socket Error:%s\a\n",strerror(errno));
exit(1);
}
/*客户程序填充服务端的资料*/
bzero(&server_addr,sizeof(server_addr));
server_addr.sin_family=AF_INET;
server_addr.sin_port=htons(portnumber);
server_addr.sin_addr.s_addr = inet_addr(argv[1]);
/*客户程序发起连接请求*/
if(connect(sockfd,(struct sockaddr *)(&server_addr),sizeof(struct sockaddr))==-1)
{
fprintf(stderr,"Connect Error:%s\a\n",strerror(errno));
exit(1);
}
/*连接成功*/
if((nbytes=recv(sockfd,buffer, RECVBUFSIZE),0)==-1)
{
fprintf(stderr,"Read Error:%s\n",strerror(errno));
exit(1);
}
buffer[nbytes]='\0';
printf("I have received:%s\n",buffer);
/*结束通讯*/
close(sockfd);
exit(0);
}
C语言
Socket
简单
编程指南
C语言
Socket
简单
编程指南,看完基本会用,包含很详细的函数解析!
linux
C语言
socket
通信聊天小
程序
linux
C语言
socket
通信聊天小
程序
C语言
socket
实现文件下载
用的
C语言
socket
实现的文件下载。服务器多线程。客户端有命令参数控制,有下载文件大小。进度条等
C语言
socket
编程.pdf
C语言
socket
编程.pdf
c语言
SOCKET
编程指南.pdf
不知道对大家有用没?感谢原作者! pdf很清楚,大家也可以自己印出来看。
C语言
70,026
社区成员
243,244
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章