java中TCP总结

先看一张图,画的很挫,将就看。

TCP 客户端与服务端通信时,是服务端会拿到客户端的socket进行通信。

TCP就相当于以前的座机,有一个听筒和一个话筒,A用话筒说话,B用听筒听。

下面讲讲java中TCP的使用以及步骤。

TCP客户端步骤:

  1.建立Socket服务,并确定IP和Port

  2.通过socket服务获取输入流或输出流。

  3.通输入或输出流操作数据。

TCP服务端的步骤:

  1.用ServerSocket来监听Port

  2.用accept获取客户端的Socket

  3.通客户端的Socket来获取输入和输出流。

  4.通过数据流传输。

用一个简单实例演示:

package com.core.net;

import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

class TcpClient{

	public static void main(String[] args) throws Exception {

		Socket s = new Socket("localhost", 10004);

		OutputStream out = s.getOutputStream();

		out.write("tcp come ...".getBytes());

		s.close();
	}
}
class TcpServer{

	public static void main(String[] args) throws Exception {

		ServerSocket ss = new ServerSocket(10004);

		Socket s = ss.accept();

		String ip = s.getInetAddress().getHostAddress();
		System.out.println(ip+".....connect");

		InputStream in = s.getInputStream();

		byte[] buf = new byte[1024];

		int len = in.read(buf);

		System.out.println(new String(buf,0,len));

		s.close();
		ss.close();

	}
}
public class TcpDemo {

	public static void main(String[] args) {

	}
}

这个实例只是客服端发送数据,服务器接收数据。

下面是一个例子是客服端发送数据,服务器发送数据。

package com.core.net;

import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

class Client2{

	public static void main(String[] args) throws Exception {

		Socket socket = new Socket("localhost", 10004);

		OutputStream out =  socket.getOutputStream();

		out.write("服务端,你好".getBytes());

		InputStream in = socket.getInputStream();

		byte[] buf = new byte[1024];

		int len = in.read(buf);

		System.out.println(new String(buf,0,len));

		socket.close();
	}
}
class Server2{

	public static void main(String[] args) throws Exception {

		ServerSocket ss = new ServerSocket(10004);

		Socket s = ss.accept();

		InputStream in = s.getInputStream();

		byte[] buf = new byte[1024];

		int len = in.read(buf);

		System.out.println(new String(buf,0,len));

		OutputStream out = s.getOutputStream();

		Thread.sleep(10000);

		out.write("客服端,你好".getBytes());

		s.close();

		ss.close();
	}
}
public class TcpDemo2 {

	public static void main(String[] args) {

	}
}

最后一个例子是服务端为大写转换器,客服端输入数据,服务端将输入的数据转换大写。

package com.core.net;

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

class TransClient{

	public static void main(String[] args) throws Exception {

		Socket socket = new Socket("localhost", 10005);

		//键盘输入
		BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
		//socket输入流
		BufferedReader bufin = new BufferedReader(new InputStreamReader(socket.getInputStream()));
		//socket输出流
		BufferedWriter bufout = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));

		String line = null;
		while((line = reader.readLine())!=null){

			if("over".equals(line))
				break;
			bufout.write(line);
			bufout.newLine();//要注意 "\r\n"
			bufout.flush();

			String str = bufin.readLine();
			System.out.println("server:"+str);

		}
		reader.close();
		socket.close();

	}
}

class TransServer{

	public static void main(String[] args) throws Exception {

		ServerSocket ss = new ServerSocket(10005);

		     Socket s = ss.accept();
		     String ip = s.getInetAddress().getHostAddress();
		     System.out.println(ip+"......connection");
		 BufferedReader reader = new BufferedReader(new InputStreamReader(s.getInputStream()));
		 BufferedWriter out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
		 String line = null;
		 while((line = reader.readLine())!=null){

			 System.out.println(line);
			 out.write(line.toUpperCase());
			 out.newLine();
			 out.flush();
		 }
		 s.close();
		 ss.close();
	}
}
public class TransDemo {

	public static void main(String[] args) {

	}
}
时间: 2024-10-10 05:24:12

java中TCP总结的相关文章

java中TCP之TCP实现

java中TCP之TCP实现 代码均来自计算机网络教材 此为服务器端代码 package server; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; public class TcpS

JAVA中TCP和UDP传输例子的对比

在本文中我将学到的java中的UDP和TCP在局域网内的传输做了对比,这里强调 的是局域网范围内,非广域网.首先,下面的是我写的在局域网内利用java中的UDP协议写的一个传输文件或者图片的类. --------------------------------------------------------------------------------------------------------------------------------------------------------

java中TCP传输协议

class TcpClient { public static void main(String[] args) throws Exception { //创建客户端的socket服务,指定目的主机和端口 Socket s = new Socket("192.168.1.10",10003); //为了发送数据,获取socket流中的输出流 java.io.OutputStream out = s.getOutputStream(); out.write("hello tcp

java中TCP和UDP两种协议的区别?

协议(网络中计算机之间通信的规则) 马克-to-win:(视频下载) (全部书籍)协议就是生活中的合同,生活中我们比如做一个大的软件项目,我们得和人签合同,说你们第一步给一部分钱,我们第二步干完活,你们第三 步给剩余的钱.网络协议也一样,说明一步一步我们怎么通信.我们上网经常用到超文本传输协议 (HTTP)或文件传输协议 (FTP)或简单邮件传输协议 (SMTP),这章我们重点讲述传输控制协议(TCP)和用户数据报协议(UDP). "传输控制协议"(TCP),具有高度的可靠性.即收到的

java中TCP两个例子大写服务器和文件上传

大写服务器的实例: package com.core.net; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; class

java中tcp小例子

服务端: ServerSocket service = new ServerSocket(7777); Socket socket = service.accept(); InputStream input = socket.getInputStream(); OutputStream out = socket.getOutputStream(); BufferedInputStream bufinput = new BufferedInputStream(input); BufferedOut

java中tcp小样例

服务端: ServerSocket service = new ServerSocket(7777); Socket socket = service.accept(); InputStream input = socket.getInputStream(); OutputStream out = socket.getOutputStream(); BufferedInputStream bufinput = new BufferedInputStream(input); BufferedOut

Java中的TCP/UDP网络通信编程

127.0.0.1是回路地址,用于测试,相当于localhost本机地址,没有网卡,不设DNS都可以访问. 端口地址在0~65535之间,其中0~1023之间的端口是用于一些知名的网络服务和应用,用户的普通网络应用程序应该使用1024以上的端口. 网络应用中基本上都是TCP(Transmission Control Protocol传输控制协议)和UDP(User Datagram Protocol用户数据报协议),TCP是面向连接的通信协议,UDP是无连接的通信协议. Socket连接套接字,

Java中的基于Tcp协议的网络编程

一:网络通信的三要素? IP地址     端口号     通信协议 IP地址:是网络中设备的通信地址.由于IP地址不易记忆,故可以使用主机名.本地环回地址,127.0.0.1   本地主机名localhost 端口号:发送端准备的数据要发送到指定的目的应用程序上,为了标识这些应用程序,所以用网络数字来标识这些不同的应用程序,这些数 字称为端口号.端口号是不同进程之间的标识.一般来说,有0~65535的端口可供使用,但是1~1024系统使用,或者称作保留端口. 通信协议:指定义的通信规则,这个规则