A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Wchunwei 初级黑马   /  2015-1-1 13:54  /  778 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package FromScreen;

import java.io.Serializable;
import java.util.Scanner;

public class FromScreen implements Serializable {
       
        /**
         *
         */
        private static final long serialVersionUID = 3552585161044065350L;
        private Scanner sc = new Scanner(System.in);
       
        public String getStringFromScreen()   //从控制台得到用户输入数据
        {
                return sc.nextLine();
        }
       
}

客户端:
package FromScreen;
import java.io.*;
import java.net.*;
public class tcpClient {
public static void main(String[] args) throws IOException{
Socket ss=new Socket("127.0.0.1",8888);
System.out.println("Socket:"+ss);
try{
        //套接字建立成功,建立I/O流进行通信
        DataInputStream dis=new DataInputStream(ss.getInputStream());
        DataOutputStream dos=new DataOutputStream(ss.getOutputStream());
        FromScreen fs=new FromScreen();
        for(int i=0;i<=100;i++)
        {
                dos.writeUTF("tcoClient   "+fs.getStringFromScreen());
                dos.flush();
                //if(fs.getStringFromScreen().equals("end")) break;
                System.out.println(dis.readUTF());
        }
        dos.writeUTF("end");               
        dos.flush();                               
        dos.close();
        dis.close();
   }finally{
         ss.close();
      }
    }
}
服务器端:
package FromScreen;
import java.io.*;
import java.net.*;
public class tcpServer {
        public static final int PORT=8888;
        public static void main(String[] args) throws IOException{
            //建立ServerSocket
            ServerSocket s=new ServerSocket(PORT);
            System.out.println("ServerSocket:"+s);
            try{
        Socket ss=s.accept();
        System.out.println("Socket accept:"+ss);
        FromScreen fs=new FromScreen();
        try
        {
          DataInputStream dis=new DataInputStream(ss.getInputStream());
          DataOutputStream dos=new DataOutputStream(ss.getOutputStream());
                    //在循环中,与客户机通信
                while(true)
                {
            String str=dis.readUTF();        //从客户机中读数据
                if(str.equals("end"))break;        //当读到end时,程序终止
                   System.out.println(str);
                       dos.writeUTF("tcpServer   :"+fs.getStringFromScreen());        //向客户机中写数据
                }
                dos.close();
                dis.close();
            }finally{
                ss.close();
            }
            }finally{
        s.close();
            }
        }
}
Tcp这个地方感觉与UDP好像啊,有点复杂

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马