写了一个通信服务器,请人帮忙测试一下,在线等

search_you 2011-04-20 06:48:31
由于本人没有linux操作系统,所以想请有linux的兄弟们帮忙测试一下功能是否正常。只有两个文件,一个是server.cc,另一个是client.cc,服务器实现的是一个简单的UDP通信服务器,其中有一个线程接收数据,另一个线程写文件,客户端实现的是从屏幕读数据并发数据到服务器。在线等!
...全文
468 53 打赏 收藏 转发到动态 举报
写回复
用AI写文章
53 条回复
切换为时间正序
请发表友善的回复…
发表回复
search_you 2011-04-26
  • 打赏
  • 举报
回复
[Quote=引用 53 楼 leonliu7558168 的回复:]
哥们!这个是不是你们的计算机网络上机的实验代码啊?我们上学期弄过!
[/Quote]
呵呵,不是,这是面试的上机题目呢。
quwei197874 2011-04-23
  • 打赏
  • 举报
回复
google
leonliu7558168 2011-04-23
  • 打赏
  • 举报
回复
哥们!这个是不是你们的计算机网络上机的实验代码啊?我们上学期弄过!
AAA20090987 2011-04-22
  • 打赏
  • 举报
回复
主席V5,呵呵
寒沙胜雪 2011-04-22
  • 打赏
  • 举报
回复
熊猫党好邪恶~
smwhotjay 2011-04-21
  • 打赏
  • 举报
回复
装个wmware. linux呗 .
秦剑 2011-04-20
  • 打赏
  • 举报
回复
how long!
aa_qq110@hotmail.com
search_you 2011-04-20
  • 打赏
  • 举报
回复
嗯,好的,非常感谢!
steptodream 2011-04-20
  • 打赏
  • 举报
回复
输入的
root@debian:~# ./client
AAAAAAAAAAAA
VVVVVVVVVVVV
DDDDDDDDDDDD
^C

root@debian:~# cat /home/data.log
AAAAAAAAAAAA

VVVVVVVVVVVV

DDDDDDDDDDDD

正常了,估计多了个换行,每行后都有个空行。
search_you 2011-04-20
  • 打赏
  • 举报
回复
兄弟,再来一次,这次不会害你了。
search_you 2011-04-20
  • 打赏
  • 举报
回复
void* write_thread(void* p)
{
while(1)
{

pthread_mutex_lock(&queue_mutex);
pthread_cond_wait(¬empty, &queue_mutex);
vector<char*>::iterator rit = vecData.begin();
ofstream outfile(FILE_NAME,ios_base::app);

while (rit != vecData.end())
{
char* pdata=(*rit);
outfile.write(pdata,strlen(pdata));
outfile.write("\n",1);
delete[] pdata;
++rit;
}

vecData.clear();
outfile.close();
pthread_mutex_unlock(&queue_mutex);

}
}
search_you 2011-04-20
  • 打赏
  • 举报
回复
哈哈,不好意识,我忘记控制循环了
steptodream 2011-04-20
  • 打赏
  • 举报
回复
幸亏我的cpu还可以 要不然被你搞死了
我输入了3行 结果你的程序马上死循环写入数据
文件瞬间94755321行 543M!!

我输入了3行 文件的内容全是
第一行内容
空行
第一行内容
空行
.....
search_you 2011-04-20
  • 打赏
  • 举报
回复
//vecData.erase(++rit);把这行注释掉看看
steptodream 2011-04-20
  • 打赏
  • 举报
回复
编译通过
启动服务器端 ok
启动client ok 但是一输入数据

server端就报
段错误

然后终止了

search_you 2011-04-20
  • 打赏
  • 举报
回复
void* write_thread(void* p)
{
while(1)
{

pthread_mutex_lock(&queue_mutex);
pthread_cond_wait(¬empty, &queue_mutex);
vector<char*>::iterator rit = vecData.begin();
ofstream outfile(FILE_NAME,ios_base::app);

while (rit != vecData.end())
{
string str=(*rit);
outfile.write(str.c_str(),str.size());
outfile.write("\n",1);
vecData.erase(++rit);
}

outfile.close();
pthread_mutex_unlock(&queue_mutex);

}
}
steptodream 2011-04-20
  • 打赏
  • 举报
回复
server.cpp: In function ‘void* write_thread(void*)’:
server.cpp:67: error: no matching function for call to ‘std::vector<char*, std::allocator<char*> >::erase(char** const&)’
/usr/include/c++/4.4/bits/vector.tcc:133: note: candidates are: __gnu_cxx::__normal_iterator<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> > std::vector<_Tp, _Alloc>::erase(__gnu_cxx::__normal_iterator<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> >) [with _Tp = char*, _Alloc = std::allocator<char*>]
/usr/include/c++/4.4/bits/vector.tcc:145: note: __gnu_cxx::__normal_iterator<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> > std::vector<_Tp, _Alloc>::erase(__gnu_cxx::__normal_iterator<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> >, __gnu_cxx::__normal_iterator<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> >) [with _Tp = char*, _Alloc = std::allocator<char*>]
search_you 2011-04-20
  • 打赏
  • 举报
回复
这次应该成功了
search_you 2011-04-20
  • 打赏
  • 举报
回复
void* write_thread(void* p)
{
while(1)
{

pthread_mutex_lock(&queue_mutex);
pthread_cond_wait(¬empty, &queue_mutex);
vector<char*>::iterator rit = vecData.begin();
ofstream outfile(FILE_NAME,ios_base::app);

while (rit != vecData.end())
{
string str=(*rit);
outfile.write(str.c_str(),str.size());
outfile.write("\n",1);
}


vecData.erase((++rit).base());
outfile.close();
pthread_mutex_unlock(&queue_mutex);

}
}
steptodream 2011-04-20
  • 打赏
  • 举报
回复
server.cpp: In function ‘void* write_thread(void*)’:
server.cpp:56: error: conversion from ‘__gnu_cxx::__normal_iterator<char**, std::vector<char*, std::allocator<char*> > >’ to non-scalar type ‘std::reverse_iterator<__gnu_cxx::__normal_iterator<char**, std::vector<char*, std::allocator<char*> > > >’ requested
server.cpp:59: error: no match for ‘operator!=’ in ‘rit != vecData.std::vector<_Tp, _Alloc>::end [with _Tp = char*, _Alloc = std::allocator<char*>]()’
加载更多回复(33)

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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