当前位置: 技术问答>linux和unix
我在linux下写了一个简单的socket通信程序,希望高手帮我看看,提提意见
来源: 互联网 发布时间:2015-04-28
本文导语: 以下是我的server和client端代码,我想实现的功能很简单,就是从客户端读入一个文件,这个文件大小希望是不受限制的,然后发送给服务器端,服务器接收到之后再写入一个文件就可以了。在服务器端我采用多线程实...
以下是我的server和client端代码,我想实现的功能很简单,就是从客户端读入一个文件,这个文件大小希望是不受限制的,然后发送给服务器端,服务器接收到之后再写入一个文件就可以了。在服务器端我采用多线程实现并发。小弟初写socket程序,不知道还需要注意一些什么地方。就请各位高手帮我看看程序,看看实用性怎么样,主要看看发送和接收那部分代码,是否需要优化,还有我这样写会不会有意想不到的问题等等。多提宝贵意见,多谢了先。分数不够还可以加!
/////////////////////////////////////////
server.cpp
#include
#include
#include
#include
#include
#include
#include
int port=8000;
void *task(void *arg);
int WriteFile(const char *filename,const char *pFile,const int nLen);
int main()
{
struct sockaddr_in sin;
struct sockaddr_in pin;
int sock_descriptor;
int temp_sock_descriptor;
int address_size;
int i,len;
pthread_t thread;
sock_descriptor=socket(AF_INET,SOCK_STREAM,0);
if(sock_descriptor==-1)
{
perror("call to socket");
exit(1);
}
bzero(&sin,sizeof(sin));
sin.sin_family=AF_INET;
sin.sin_addr.s_addr=INADDR_ANY;
sin.sin_port=htons(port);
if(bind(sock_descriptor,(struct sockaddr *)&sin,sizeof(sin))==-1)
{
perror("call to bind");
exit(1);
}
if(listen(sock_descriptor,20)==-1)
{
perror("call to listen");
exit(1);
}
cout
/////////////////////////////////////////
server.cpp
#include
#include
#include
#include
#include
#include
#include
int port=8000;
void *task(void *arg);
int WriteFile(const char *filename,const char *pFile,const int nLen);
int main()
{
struct sockaddr_in sin;
struct sockaddr_in pin;
int sock_descriptor;
int temp_sock_descriptor;
int address_size;
int i,len;
pthread_t thread;
sock_descriptor=socket(AF_INET,SOCK_STREAM,0);
if(sock_descriptor==-1)
{
perror("call to socket");
exit(1);
}
bzero(&sin,sizeof(sin));
sin.sin_family=AF_INET;
sin.sin_addr.s_addr=INADDR_ANY;
sin.sin_port=htons(port);
if(bind(sock_descriptor,(struct sockaddr *)&sin,sizeof(sin))==-1)
{
perror("call to bind");
exit(1);
}
if(listen(sock_descriptor,20)==-1)
{
perror("call to listen");
exit(1);
}
cout