sunjinooo 发表于 2012-09-26 17:34

急,求教,JAVA和linux下c网络通讯问题

我在windows下用java谢了服务器端,在linux下写了客户端,用socket通信,socket连接成功,问什么传不了数据?
java服务器端
package com.test1;
import java.net.*;
import java.io.*;
public class MyServer2 {

        /**
       * @param args
       */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                MyServer2 ms2=new MyServer2();

        }
   public MyServer2()
   {
           try {
           //在5678端口监听
            System.out.println("服务器在5678监听。。。");
            ServerSocket ss=new ServerSocket(5678);
            //等待连接
            Socket s=ss.accept();
           
            //先接受客户端发来的数据
            BufferedReader DIS = new BufferedReader(new InputStreamReader(s.getInputStream()));
            PrintStream PS = new PrintStream(s.getOutputStream());


            //接受从控制台输入的信息
            InputStreamReader isr2=new InputStreamReader(System.in);
           
            BufferedReader br2=new BufferedReader(isr2);
           
            while(true)
            {
                    String infoFromClient=DIS.readLine()
                                    ;
                   
                    System.out.println("客户端发来:"+infoFromClient);
                    //接手从控制台输入的信息
                    System.out.println("输入你希望对客户端说的话:");
                    String response=br2.readLine()
                                    ;
                   
                    //把从控制台接受的信息会送给客户端
                    PS.println(response);
                   
                   
                   
            }
           
           }catch (Exception e) {
                   e.printStackTrace();
           }
           
   }
}
linux下c是客户端
#include<stdio.h>

#include<netinet/in.h>

#include<arpa/inet.h>

#include<unistd.h>

#include<fcntl.h>

#include<sys/stat.h>

#include<sys/types.h>

#include<sys/socket.h>



#define PORT 5678

#define REMOTE_IP "192.168.0.2"



int main(int argc,char *argv[])

{

int s ;

struct sockaddr_in addr ;

char mybuffer;



if( (s=socket(AF_INET,SOCK_STREAM,0))<0 )

{

perror("socket");

exit(1);

}

else

{

printf("socket created .\n");

printf("socked id: %d \n",s);

}

bzero(&addr,sizeof(addr));

addr.sin_family =AF_INET;

addr.sin_port=htons(PORT);

addr.sin_addr.s_addr=inet_addr(REMOTE_IP);



if(connect(s,&addr,sizeof(addr))<0)

{

perror("connect");

exit(1);

}

else

{

printf("connected ok!\n");

printf("remote ip:%s\n",REMOTE_IP);

printf("remote port:%d\n",PORT);

}

recv(s ,mybuffer,sizeof(mybuffer),0);

printf("%s\n",mybuffer);

while(1)

{

bzero(mybuffer,sizeof(mybuffer));

read(STDIN_FILENO,mybuffer,sizeof(mybuffer));



if(send(s,mybuffer,sizeof(mybuffer),0)<0)

{

perror("send");

exit(1);

}

else

{

bzero(mybuffer,sizeof(mybuffer));

recv(s ,mybuffer,sizeof(mybuffer),0);

printf("received:%s\n",mybuffer);

}

}

}
显示连接成功,但是在客户端输入字符串传递不到服务器端,但是关闭客户端时服务器显示
;服务器在5678监听。。。
客户端发来:null
输入你希望对客户端说的话:
为什么呢?
页: [1]
查看完整版本: 急,求教,JAVA和linux下c网络通讯问题