c服务端能接收到数据,但send的时候java客户端却接受不到,不知道什么原因,有没有达人能帮忙解决一下,多谢
代码如下:
服务器端:
#include<stdio.h>
#include<winsock2.h>void main()
{
WSADATA wsaData;
SOCKET  server;
SOCKET  connSock;
SOCKADDR_IN tcpAddr;
SOCKADDR_IN clientAddr;
char recBuff[100];
char sendBuff[100];
int port = 10000; int len=sizeof(clientAddr);
WSAStartup(MAKEWORD(2,2),&wsaData); server = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

tcpAddr.sin_family = AF_INET;
tcpAddr.sin_port = htons(port);
tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY);

int bindError;
bindError=bind(server,(SOCKADDR *)&tcpAddr,sizeof(tcpAddr));
if(bindError==SOCKET_ERROR)
{
printf("error is : %s\n",WSAGetLastError());
}
else
{
printf("Bind is successful ...\n");
} listen(server,5);
connSock=accept(server,(SOCKADDR*)&clientAddr,&len);
if(connSock==INVALID_SOCKET||connSock==WSAEWOULDBLOCK)
{
printf("error is : %s\n",WSAGetLastError());
}
else
{
printf("Accept is successful ...\n\n");
}
while(1)
{

memset(recBuff,0,100);
int recvNum=0;
recvNum=recv(connSock,recBuff,100,0);
if(recvNum==SOCKET_ERROR)
{
printf("Client is closing ...\n");
break;
}
printf("recv number :%d\n",recvNum);
printf("client say : %s\n",recBuff);
memset(sendBuff,0,100);

gets(sendBuff);
int sendNum=0;
sendNum=send(connSock,sendBuff,100,0);
printf("%d\n",sendNum);
}
closesocket(connSock);
closesocket(server);
WSACleanup();

}
客户端:
import java.io.*;
import java.net.*;
/**
 *
 * @author Cloud
 */
public class Client
{
public static void main(String[] args)
{
String send=null;
Communication c=new Communication("192.168.0.74",10000);
while(true)
{
try
{
send=new BufferedReader(new InputStreamReader(System.in)).readLine();
}
catch(IOException e)
{
System.out.println(e.toString());
} c.send(send); String rec=c.getRec();
System.out.println(rec);
}
}}
class Communication
{
    private Socket c;
    private BufferedReader br=null;
    private PrintWriter pw=null;
    private String rec=null;
    public Communication(String ip,int port)
    {
try
{
c=new Socket(ip,port);
}
catch(IOException e)
{
System.out.println(e.toString());
}
    }
    public String getRec()
    {
try
{
InputStreamReader isr=new InputStreamReader(c.getInputStream());
br=new BufferedReader(isr);
rec=br.readLine();
}
catch(IOException e)
{
System.out.println(e.toString());
}
finally
{
try
{
if(br==null)
{
br.close();
System.out.println("Inputstream is closed .");
}
    if(c==null)
    {
     c.close();
     System.out.println("Socket is closed .");
}
}
catch(IOException e)
{
System.out.println(e.toString());
}
}
return rec;
}
public void send(String send)
{
try
{
            pw=new PrintWriter(c.getOutputStream(),true);
            pw.println(send);
            pw.flush();
}
catch(IOException e)
{
System.out.println(e.toString());
}
finally
{
try
{
if(pw==null)
pw.close();
    if(c==null)
     c.close();
}
catch(IOException e)
{
System.out.println(e.toString());
}
}
}
}