急,求教,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]