当前位置:  技术问答>linux和unix

Linux下sockek程序每次傳輸圖片都不完整****(順便好奇怪,怎麼打出繁體字)

    来源: 互联网  发布时间:2016-11-19

    本文导语:  本帖最后由 Sasoritattoo 于 2011-02-12 16:41:53 编辑 好奇怪,都沒有安裝繁體字的字庫什麽的,怎麼會打出繁體字呢???真奇怪。。。。。 -----------------------------------看不见我--------------------------------------------------- ------...

本帖最后由 Sasoritattoo 于 2011-02-12 16:41:53 编辑
好奇怪,都沒有安裝繁體字的字庫什麽的,怎麼會打出繁體字呢???真奇怪。。。。。

-----------------------------------看不见我---------------------------------------------------

-----------------您奇怪完了之後,請看下面的問題吧------------------------------------------------
-----------------------------------看不见我---------------------------------------------------


我最近在搞Linux下的網絡傳輸問題,邊搞邊學嘛。。。。(哎呀,似乎繁體字看起來很麻煩呢,見諒啊大家)
服務器端運行在虛擬機中的Linux下,客戶端運行在arm板上Linux系統中,從客戶端傳輸一張圖片到虛擬機Linux中

-----------------------------------看不见我---------------------------------------------------
-------------我試過了,好像打出繁體字似乎跟chrome瀏覽器有關,换了ie浏览器,下面使用简体字------------
-----------------------------------看不见我---------------------------------------------------

下面上一下代码,很简单的,应该大致浏览下就好

/*socket_client.c**********run in arm linux system*/
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define PORT  4321
#define BUFFER_SIZE  1024

int main(int argc, char *argv[])
{
int sock_fd,sendbytes;
FILE *file_fd;
int buf[BUFFER_SIZE];   // It is the integer 
struct hostent *host;
struct sockaddr_in serv_addr;

 long int num;
memset(buf,0,sizeof(buf));
file_fd = fopen("test-picture.jpg","rb");

if(argc h_addr);
bzero(&(serv_addr.sin_zero),8);

if(-1 == connect(sock_fd,(struct sockaddr *)&serv_addr,sizeof(struct sockaddr)))
{
perror("connect");
exit(1);
}

while(1)
{
if(-1 == (num = fread(buf,1,sizeof(buf),file_fd)))
{
perror("fopen");
exit(1);
}

if(0 == num) break;

if(-1 == (sendbytes = send(sock_fd,buf,num,0)))   //send()
{
perror("send");
exit(1);
}
if(num != sendbytes)
{
//perror("num != sendbytesn");
printf("num != sendbytesn");
//break;
}
printf("file words num is :%dn",num);
printf("-----sendbytes is :%dnn",sendbytes);
}

close(sock_fd);
close(file_fd);
exit(0);
}



-----------------------------------看不见我---------------------------------------------------



/*socket_server.c********* run in pc linux*/
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define PORT  4321      //PORT number must be the same with client
#define BUFFER_SIZE  1024      // 1024 * 1024  = 1048576
#define MAX_QUE_CONN_NM 10

int main()
{
struct sockaddr_in server_sockaddr,client_sockaddr;
int sin_size,recvbytes;
int sock_fd,client_fd;
FILE *file_fd;
char buf[BUFFER_SIZE];
long int num;
int ii;

if(-1 == (sock_fd = socket(AF_INET,SOCK_STREAM,0)))   //SOCK_STREAM
{
perror("socket");
exit(1);
}
printf("Socket id = %d(sock_fd)n",sock_fd);

server_sockaddr.sin_family = AF_INET;
server_sockaddr.sin_port = htons(PORT);
server_sockaddr.sin_addr.s_addr = INADDR_ANY;
bzero(&(server_sockaddr.sin_zero),8);

int i = 1;
setsockopt(sock_fd,SOL_SOCKET,SO_REUSEADDR,&i,sizeof(i));
if(-1 == bind(sock_fd,(struct sockaddr *)&server_sockaddr,sizeof(struct sockaddr)))
{
perror("bind");
exit(1);
}
printf("Bind success!n");

if(-1 == listen(sock_fd,MAX_QUE_CONN_NM))
{
perror("listen");
exit(1);
}
printf("Listening....n");

if(-1 == (client_fd = accept(sock_fd,(struct sockaddr *)&client_sockaddr,&sin_size)))
{
perror("accept");
exit(1);
}

file_fd = fopen("./test-picture.jpg","wb");

while(1)
{
memset(buf,0,sizeof(buf));
if(-1 == (recvbytes = recv(client_fd,buf,sizeof(buf),0)))//Yes,from here
{      //Use while cycle
perror("recv");
exit(1);
}

printf("sizeof(buf)= %dn",sizeof(buf));
printf("receive bytes num is :%dnn",recvbytes);
//FILE * abc_fd;

if(-1 == (num = fwrite(buf,sizeof(buf),1,file_fd)))
{
perror("fwrite date ");
exit(1);
} //over here ,write over
if(recvbytes 

    
 
 

您可能感兴趣的文章:

  • 问一下linux C编程里面有么有哪个函数会把函数的调用栈打出来?
  • Linux 安装之后的 遇到的奇怪问题?
  • 虚拟机里装linux的奇怪问题
  • Linux下的文字编辑软件gedit问题?奇怪!!!!!!!!
  • /***奇怪!安装Red Hat Linux 7.2后怎么Konqueror打不开?***/
  • linux一个很奇怪的问题!
  • windows 2000 访问linux下smaba时候 2G以上大小的文件显示出来的大小很奇怪
  • LINUX中crontab的奇怪问题
  • linux网络编程问题:奇怪的缓冲区?
  • 关于LINUX I2C,GCC的奇怪问题。。。问题依旧。。
  • Linux这么奇怪?
  • LINUX系统遇到超级奇怪的事情,大家帮忙解惑
  • 试图安装双系统,奇怪linux安装时找不到磁盘分区
  • make: arm-linux-: Command not found的奇怪问题
  • 关于linux的很奇怪的问题。
  • linux下非常奇怪的问题!!高手帮忙!
  • linux 奇怪的死机问题 大家帮帮我
  • 移植嵌入式linux 子网掩码 奇怪问题
  • LINUX下挂载DOS分区的很奇怪的问题.请帮忙解决.
  • 超级奇怪!!!安装Linux后,进入win2000总是寻找磁盘,变得很慢!!!
  • 很奇怪的问题:linux下tcp send导致服务器进程崩溃
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux下通过crond实现自动执行程序
  • 为什么linux下的C++程序这么少见? 请问那里有linux下的C++程序?什么类型的程序都可以.
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • linux上的程序怎样远程启动另一个linux系统上的某个程序
  • 如何使用linux下gdb来调试python程序
  • 在linux下面怎么安程序啊?我刚裝了一个 linux,下了一个迅雷安装程序,可是不知道怎么安装啊?真心请教。
  • Linux下c/c++开发之程序崩溃(Segment fault)时内核转储文件(core dump)生成设置方法
  • 请指点: 在windows下能否通过程序来获取linux下的用户列表,甚至通过自己写的windows程序界面增加修改linux的用户
  • Linux程序员在公司里做什么程序?(Linux程序员请进)
  • 我的linux程序 如何 在pc机器上运行。现在我用arm-linux-g++ 编译后的程序在我的嵌入设备上运行。
  • Linux 编程怎么样在程序开启一个程序,和关闭一个程序?
  • Linux下的程序是在内存中运行的吗?为什么在程序运行的时候可以删除程序文件?
  • 请指点: 在windows下能否通过程序来获取linux下的用户列表,甚至通过自己写的windows程序界面增加修改linux的用户 100分相赠
  • linux初学者一简单问题!在线送分!linux设备驱动程序一书的第一个程序.
  • 最进想学习LINUX程序设计,想了解一下在LINUX下的C++程序开发工具有哪些?有快速做界面的那种吗?
  • 我写了个linux下的网络程序,程序在多个电脑间通信,但是我没有多个电脑,怎么调试这样的程序啊?
  • linux下,一个程序如何向另一个程序发送消息,另一个程序如何接收
  • 请问载linux下如何调试汇编程序,有没有像debug的程序。
  • linux的程序员是不是比windows程序员的薪水高啊?
  • 菜鸟求助:Linux 应用程序后台启动后关闭窗口程序退出
  • 请教:如何在linux服务器上实现一个程序,该程序可启动远程linux客户端上的一个脚本(sh后缀)的执行
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3