TCP之(chat)

来源:互联网 发布:进销存 java 编辑:程序博客网 时间:2024/05/16 15:03
package IpAddrSocket;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

public class ChatTCP {

    public static void main(String[] args) throws UnknownHostException, IOException{
        //TCP
        Socket socket=new Socket(InetAddress.getLocalHost(),9090);
        //转换流,转socket的字节流
        OutputStreamWriter socketWriter=new OutputStreamWriter(socket.getOutputStream());
        //行读
        BufferedReader keyReader=new BufferedReader(new InputStreamReader(System.in));
        
        
        
        BufferedReader socketReader=new BufferedReader(new InputStreamReader(socket.getInputStream()));
        
        
        String line=null;
        //因为readLine()函数没有\r\n,所以服务器一直在等\r\n结束,而一直等不到
        while((line=keyReader.readLine())!=null){
            
            /*socketWriter.write(line);
            socket.shutdownOutput();*/
            
            //下面方法好
            socketWriter.write(line+"\r\n");            
            socketWriter.flush();
            
            
            
            //读取服务端回送信息
            line=socketReader.readLine();
            System.out.println("server send "+line);
            
        }
        
        
        
        socket.close();
    }
}
    
package IpAddrSocket;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerTCP {

    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket=new ServerSocket(9090);
        Socket socket=serverSocket.accept();
        
        BufferedReader socketReader=new BufferedReader(new InputStreamReader(socket.getInputStream()));
        
        //回给客户信息
        OutputStreamWriter socketOut=new OutputStreamWriter(socket.getOutputStream());
        BufferedReader keyReader=new BufferedReader(new InputStreamReader(System.in));
        
        String line=null;
        while((line=socketReader.readLine())!=null){
            
            System.out.println(line);
            
            
            
            System.out.println("give client information");
            line=keyReader.readLine();
            socketOut.write(line+"\r\n");
            socketOut.flush();
        }
        
        socket.close();
    }

}
0 0
原创粉丝点击