客户端代码
public static void main(String[] args)
{
//读取命令行数据。
Socket socket;
try{
socket = new Socket(InetAddress.getLocalHost(),6767);
System.out.println(InetAddress.getLocalHost().toString());
BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out=new PrintWriter(socket.getOutputStream());
out.write(args[0] + "," + args[1]);
out.flush();
System.out.println(1);
System.out.print(in.readLine());
socket.close();
}catch(IOException ex)
{
}
}服务器端代码
//读取命令行数据。
ServerSocket socket;
Socket client;
try{
socket = new ServerSocket(6767);
client = socket.accept();
System.out.println(client.getInetAddress().toString());
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter out = new PrintWriter(client.getOutputStream());
System.out.println("1");
while(true)
{
  String str = in.readLine();
  System.out.println("begin receive....." + str);
  out.println("has receive....." + str);
  out.flush();
  if (str == "end")
  break;
}
client.close();
}catch(IOException ex)
{
}出现的结果:
客户端输出
    本机电脑名称/ip地址
    1
   服务器端输出
   /ip地址
   1问题:
   1、为什么我的客户端和服务器端连不上呢?
   2、java的可以去连接c#的socket服务器吗?
谢谢

解决方案 »

  1.   

    你在客户端没有建立输入缓冲池 ,所以你在键盘输入的信息显示不出来也发不过去
    try{ 
    socket   =   new   Socket(InetAddress.getLocalHost(),6767); 
    String s=InetAddress.getLocalHost().toString();
    System.out.println(s); 
    BufferedReader   in=new   BufferedReader(new   InputStreamReader(socket.getInputStream())); 
    PrintWriter   out=new   PrintWriter(socket.getOutputStream(),true); 
    BufferedReader line = new BufferedReader(new InputStreamReader(System.in));
    String s=line.readLine();
    while(true){
    out.println(s);
    out.flush();
    if(s.equals("end"))break;
    s=line.readLine();
    continue;
    }
    out.write(s); 
    out.flush(); 
    System.out.println(1); 
    System.out.print(in.readLine()); 
    socket.close(); 
    }catch(IOException   ex) { } 
    还有out.write(args[0]   +   ","   +   args[1]); 有溢出,所以改为:
    out.println(InetAddress.getLocalHost().toString()); 
    我也是刚学,不知道能不能连c#的服务器
      

  2.   

    当然可以。。他们全部实现的tcp/ip协议,跟具体的哪种语言实现无关。
      

  3.   

    你这个程序都block住了。。根本不可能结束。。
      

  4.   

    你的客户端是怎么请求的?输出后,BufferedReader       in=new       BufferedReader(new       InputStreamReader(socket.getInputStream())); 
    还有最后将异常输出也打印出来  
      

  5.   

    各位,我只需要能够建立客户机与服务器的连接即可,发送内容都是通过命令行参数去发送的。
    服务器端其实不需要结束,只能能够读到客户发送的数据即可我想做个程序,在服务器端一直等待客户端发送数据的程序,客户端发完就自动关闭了。服务器一直在监听。to:solar2006 
    还有out.write(args[0] + ","  +args[1]);   有溢出,所以改为:
    ===========================
    那是因为我发送的内容是通过命令行参数传送的。to:jialin_2004 
    我去尝试一下输出异常,居然连这个都忘记了
      

  6.   

    那你在服务器端实现多线程,每次accpt获得socket以后,使用另外一个线程来与客户端连接,然后客户端结束,你的线程也结束。。你服务端主线程不断在accept,分配新线程。或者用nio。