java6.01学习笔记TCPServer

原创 2016年06月01日 21:04:02

同步式连接效率较低

import java.net.*;
import java.io.*;
public class TestServer {
    public static void main(String[] args) throws Exception{
        //服务器应该一直属于等待状态,不间断运行。
        //等待客户端的连接,6666为端口号
        ServerSocket ss = new ServerSocket(6666);
        //服务器端接受连接,返回Socket类型。服务器端
        //一般为死循环一直使用accept方法。
        while (true) {
            Socket s = ss.accept();
            System.out.println("ok");
            //建立读取管道
            DataInputStream dis = new DataInputStream(s.getInputStream());
            System.out.println(dis.readUTF());
            dis.close();
        }
    }
}


import java.util.*;
import java.net.*;
import java.io.*;
//Tcp协议
public class TestClient {
    public static void main(String[] args) throws Exception {
        //Client端申请连接
        Socket s = new Socket("192.168.1.100",6666);
        //传输数据,拿到输出管道
        OutputStream os = s.getOutputStream();
        DataOutputStream dos = new DataOutputStream(os);

        dos.writeUTF("Hello Server");
        dos.flush();
        s.close();
    }
}

一人一句通话

记住write()方法内必须加“\n”来换行不然readLine()方法会因为读取不到换行符而一直等待。

每次写出完毕记得加上flush()方法不然不会写出。

import java.util.*;
import java.io.*;
import java.net.*;

public class TestServer2 {
    public static void main(String [] args) {
        ServerSocket ss = null;
        try {

            ss = new ServerSocket(8888);
        }catch(IOException e) {
            System.out.println("传输错误");
        }
        Socket s = new Socket();
        try{
            s = ss.accept();
            System.out.println("ok");
        }catch(Exception e) {
            System.out.println("连接失败");
        }

        try {
            BufferedWriter bo = new BufferedWriter( new OutputStreamWriter(s.getOutputStream()));
            BufferedReader bi = new BufferedReader(new InputStreamReader(s.getInputStream()));

            String str = null;
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            str = br.readLine();
            System.out.println("server :" + str);
            while(!str.equals("bye")) {
                bo.write(str + "\n");
                bo.flush();
                System.out.println("Cilent : " + bi.readLine());
                str = br.readLine();
            }
            bo.close();
            bi.close();
            br.close();
        }catch(IOException e) {
            e.printStackTrace();
        }
    }   
}

此处应为Client

import java.io.*;

public class Cilent {
    public static void main(String[] args) {
        try{
            Socket s = new Socket("192.168.1.100",8888);

            BufferedReader bi = new BufferedReader(new InputStreamReader(s.getInputStream()));
            BufferedWriter bo = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));

            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            System.out.println("Server : " + bi.readLine());
            String str = br.readLine();

            while(!str.equals("bye")) {

                bo.write(str + "\n");
                bo.flush();
                System.out.println("Server : " + bi.readLine());
                str = br.readLine();

            }

            bi.close();
            br.close();
            br.close();
        }catch(IOException e){
            e.printStackTrace();
        }
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

java学习笔记

  • 2017年11月09日 13:53
  • 335KB
  • 下载

Java JDK 7学习笔记

  • 2017年11月16日 16:09
  • 13.47MB
  • 下载

Exception in thread "main" java.lang.NoClassDefFoundError: TCPServer (wrong name: intimeMessage/TCPS

编译时遇到下面这个问题。一直搞不懂是什么意思 Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Microsoft Corporation。保留所...

java学习笔记

  • 2015年12月02日 21:08
  • 229KB
  • 下载

java学习笔记

  • 2014年10月03日 10:39
  • 65KB
  • 下载

muduo网络库学习之EventLoop(三):Socket、Acceptor、TcpServer、TcpConnection(连接建立,接收消息)

1、Acceptor Acceptor用于accept(2)接受TCP连接 Acceptor的数据成员包括acceptSocket_、acceptChannel_,Acceptor的accept...

Java学习笔记之IO流

  • 2016年08月11日 07:36
  • 15KB
  • 下载

java编程思想学习笔记

  • 2015年04月27日 16:13
  • 272KB
  • 下载

java8 stream学习笔记

pipeline 为了更好地对集合进行并行操作,java8中加入了stream API。以前对集合的操作策略由客户端提供,有了stream API后,对集合的操作集成到了集合内部,客户端只需要按需调...

java学习笔记JDK6课件之二十

  • 2008年07月21日 10:58
  • 308KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java6.01学习笔记TCPServer
举报原因:
原因补充:

(最多只允许输入30个字)