怎么通过socket在客户端与服务器之间传文件(比如一个C文件)
(2012-06-08 02:13:02)
标签:
服务器
客户端
杂谈
怎么通过socket在客户端与服务器之间传文件(比如一个C文件)小弟刚学习socket通信,只知道一些皮毛,附上两段程序(server.c和client.c)
server.c
------------#include
#include
#include
#include
#include
#include
#include
#include
#define SERVPORT 3333
#define BACKLOG 10
#define MAX_CONNECTED_NO 10
#define MAXDATASIZE 10
int main()
{
struct sockaddr_in server_sockaddr,client_sockaddr;
int sin_size,recvbytes;
int sockfd,client_fd;
int i;
char buf;
if((sockfd = socket(AF_INET,SOCK_STREAM,0)) == -1)
{
perror("socket");
exit(1);
}
printf("socket
success!,sockfd=%d\n",sockfd);
server_sockaddr.sin_family=AF_INET;
server_sockaddr.sin_port=htons(SERVPORT);
server_sockaddr.sin_addr.s_addr=INADDR_ANY;
bzero(&(server_sockaddr.sin_zero),8);
if(bind(sockfd,(struct sockaddr
*)&server_sockaddr,sizeof(struct sockaddr)) ==
-1)
{
perror("bind");
exit(1);
}
printf("bind success!\n");
if(listen(sockfd,BACKLOG) == -1)
{
perror("listen");
exit(1);
}
printf("listening....\n");
if((client_fd=accept(sockfd,(struct sockaddr
*)&client_sockaddr,&sin_size)) ==
-1)
{
perror("accept");
exit(1);
}
if((recvbytes=recv(client_fd,buf,MAXDATASIZE,0)) == -1)
{
perror("recv");
exit(1);
}
printf("received a connection
:%s\n",buf);
close(sockfd);
}
-----------------------------------------------------------------------------------------------------------------
client.c
---------#include
#include
#include
#include
#include
#include
#include
#include
#define SERVPORT 3333
#define MAXDATASIZE 100
void main(int argc,char *argv[])
{
int sockfd,sendbytes;
char buf;
struct hostent *host;
struct sockaddr_in serv_addr;
if(argc < 2)
{
fprintf(stderr,"Please enter the server's
hostnamehttp://www.handankaisuo.com/!\n");
exit(1);
}
if((host=gethostbyname(argv)) == NULL)
{
perror("gethostbyname
error!");
exit(1);
}
if((sockfd=socket(AF_INET,SOCK_STREAM,0)) == -1)
{
perror("socket");
分享:
喜欢
0
赠金笔
加载中,请稍候......
评论加载中,请稍候...
发评论
登录名: 密码: 找回密码 注册记住登录状态
昵 称:
评论并转载此博文
发评论
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。