`
步青龙
  • 浏览: 298863 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
72ba33fb-eefe-3de1-bd65-82a6e579265d
Java面试
浏览量:0
社区版块
存档分类
最新评论

TCP和UDP

阅读更多

TCP: Server端

		try {
			ServerSocket ss = new ServerSocket(8808);
			Socket socket = ss.accept();
 			OutputStream os = socket.getOutputStream();
 			PrintWriter pw = new PrintWriter(os);
 			pw.print("hello");
 			pw.flush();
 			pw.close();
 			socket.close();
 			ss.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
 

 

 Client端:

 

		try {
			Socket socket = new Socket("localhost",8808);
			InputStream is = socket.getInputStream();
			InputStreamReader isr = new InputStreamReader(is);
			BufferedReader br = new BufferedReader(isr);
			String str = br.readLine();
			System.out.println(str);
		}catch (IOException e) {
			e.printStackTrace();
		}
 

 

这样就简单实现来服务器端与客户端的socket数据传输。

 

UDP Server端:

		try {
			DatagramSocket ds = new DatagramSocket(9999); // 创建数据socket
			byte[]  buff = new byte[1024];
			DatagramPacket dp = new DatagramPacket(buff,1024);// 创建数据包
			ds.receive(dp); // 接受数据
			String str = new String(dp.getData()); // 得到数据
			System.out.println(str);
			ds.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
 

Client端:

			DatagramSocket ds = new DatagramSocket(9998);// 创建数据socket
			String str = "abc"; // 要发送的数据
			DatagramPacket dp = new DatagramPacket(
					str.getBytes(),0,str.length(),
					InetAddress.getByName("localhost"),9999);
			// 创建数据包
			ds.send(dp); // 发送数据
			ds.close();
 

TCP通信的服务器端创建一个多线程模型

public class TestServerThread {
	public static void main(String[] args) {
		try {
			ServerSocket ss = new ServerSocket(8808);
			Socket socket = null;
			if ((socket=ss.accept()) != null) {
				new MyThread(socket).start();
			}
			ss.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
class MyThread extends Thread{
	private Socket socket;
	public MyThread(Socket socket){
		super();
		this.socket = socket;
	}
	public void run(){
		try {
			
			try {
				OutputStream os = socket.getOutputStream();
				PrintWriter pw = new PrintWriter(os);
				pw.print("new is :" + new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()));
				pw.flush();
				pw.close();
				socket.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}	
			sleep(10000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
}

 一般的WEB服务器都支持多线程,WEB服务器都是用到这些基础知识。我们可以用java 的TCP变成API创建一个very简单的WEB服务器,如果真的想开发出像Tomcat,WEBSphere确实不是很简单的事情。

 

pw.print("<html><head><title>title</title></head><body>hello welcome!</body></html>");

运行main 然后打开浏览器输入http://localhost:8808 这样就可以在浏览器看到hellol welcome啦。

最简单的模拟啦web服务器。像tomcat等服务器实现的协议不知道有多少种。做java ee开发就不做深究。

 

 

 

分享到:
评论

相关推荐

    C#2010 Socket TCP和UDP报文及端口测试工具的开发和源码

    C#是一种广泛用于构建桌面和Web应用的编程语言,它提供了强大的Socket类库来处理TCP和UDP通信。本篇文章将深入探讨如何使用C# 2010开发一个Socket测试工具,包括TCP和UDP报文的发送与接收,以及端口的测试。 首先,...

    基于TCP和UDP的socket通信程序(C语言)

    在IT领域,网络编程是构建分布式系统和网络应用的基础,其中TCP和UDP是两种主要的传输层协议。本文将深入探讨这两个协议以及如何使用C语言进行socket编程。 首先,TCP(Transmission Control Protocol)是一种面向...

    Java TCP和 UDP测试代码

    Java作为一门广泛使用的编程语言,提供了丰富的API来支持TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)这两种主要的网络通信协议。下面我们将深入探讨Java如何实现TCP和UDP的测试代码,以及...

    TCP和UDP连接

    在IT行业中,网络通信是至关重要的一个领域,TCP(传输控制协议)和UDP(用户数据报协议)是两种主要的传输层协议,它们为应用程序提供数据传输服务。本篇文章将详细探讨TCP和UDP连接,以及如何通过工具如TCPView来...

    STM32 BC35模块阿里云ECS(TCP和UDP)使用.rar

    而BC35模块则是提供GSM和GPRS网络连接,支持TCP和UDP协议,能进行无线数据传输。 在这个项目中,我们主要关注如何通过STM32 BC35模块与阿里云进行TCP和UDP通信。TCP(传输控制协议)是一种面向连接的、可靠的传输...

    STM32F4上使用TCP和UDP的例程

    在这个特定的项目中,我们关注的是如何在STM32F4上实现TCP(传输控制协议)和UDP(用户数据报协议)的通信功能,这通常涉及到网络编程和LWIP(Lightweight TCP/IP)协议栈的使用。 **TCP(传输控制协议)**是一种...

    TCP和UDP实例

    UDPDemo和TcpDemo可能是两个编程示例,分别展示了如何使用UDP和TCP进行数据传输。在实际编程中,开发者需要根据应用需求选择合适的协议,例如,一个在线游戏可能需要使用UDP来实现低延迟的游戏交互,而一个文件传输...

    C# Socket TCP和UDP报文及端口测试工具的开发(提供源码)万能超好测试工具

    本项目聚焦于利用C#的Socket类库开发TCP和UDP协议的报文及端口测试工具。这个工具能够帮助开发者进行网络连接的调试、性能测试以及问题排查,其源码的提供对于学习和实践网络编程具有极大的价值。 首先,TCP...

    TCP和UDP socket调试工具V2.2

    在计算机网络编程中,TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种常见的传输层协议,它们在数据传输方面各自有着独特的特性和应用场景。本文将针对“TCP和UDP Socket调试工具V2.2”...

    TCP和UDP的区别和优缺点

    TCP 和 UDP 的区别和优缺点 TCP(Transmission Control Protocol,传输控制协议)和 UDP(User Datagram Protocol,用户数据报协议)是两种常用的传输层协议,它们之间存在许多区别,了解这些区别对于网络编程和...

    TCP和UDP数据包发送程序.rar

    在计算机网络领域,TCP(传输控制协议)和UDP(用户数据报协议)是两种主要的传输层协议,它们各自有着不同的特性和应用场景。本项目提供了一个数据包发送模拟程序,包含源代码、可执行文件以及相关文档,帮助我们...

    tcp和udp包分析

    tcp 和 udp 包分析 在 Wireshark 中,tcp 和 udp 包分析是网络协议分析的重要部分。 Tcp 和 udp 是两种常用的传输层协议,分别用于可靠的连接oriented 和不可靠的连接less 通信。 一、 TCP 包分析 Tcp 包是 ...

    tcp和udp通讯基于Socket

    在IT行业中,网络通信是至关重要的一个领域,TCP(传输控制协议)和UDP(用户数据报协议)是两种最基础的传输层协议,它们都基于Socket进行通讯。Socket编程是网络编程的基础,允许应用程序通过网络发送和接收数据。...

    TCP和UDP穿越NAT技术及其代码

    在IT行业中,网络通信是至关重要的一个领域,TCP(传输控制协议)和UDP(用户数据报协议)是两种主要的传输层协议。然而,在实际应用中,尤其是涉及到P2P(点对点)通信时,NAT(网络地址转换)会成为一个挑战。本篇...

    TCP和UDP仿QQ聊天程序源码

    在计算机网络通信领域,TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种重要的传输层协议,它们分别在不同的场景下发挥着关键作用。本篇文章将深入探讨这两种协议,并基于VC++实现的仿...

    tcp和udp理解(有图有例子)

    3.UDP和TCP的对比 UDP处理的细节比TCP少。UDP不能保证消息被传送到目的地。UDP也不保证数据包的传送顺序。UDP把数据发出去后只能希望它能够抵达目的地。 三、TCP优缺点 优点: 1.TCP提供以认可的方式显式地...

    基于TCP和UDP的聊天程序

    【标题】:“基于TCP和UDP的聊天程序” 在计算机网络通信中,TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种常见的传输层协议,它们各有特点并广泛应用于各种网络应用,包括聊天程序...

    TCP和UDP的端口扫描程序.zip

    在计算机网络中,TCP(传输控制协议)和UDP(用户数据报协议)是两种主要的传输层协议,它们各自有着不同的特性和应用场景。端口扫描是网络安全领域中的一个关键技术,用于探测目标主机开放的服务和端口,从而了解...

    基于Socket的TCP和UDP聊天程序代码

    本主题聚焦于"基于Socket的TCP和UDP聊天程序代码",提供了完整的Java工程文件,帮助开发者理解如何利用这两种传输协议创建聊天应用程序。TCP(传输控制协议)和UDP(用户数据报协议)是Internet协议族中的两种主要...

    Tcp和Udp的数据包发送程序

    本项目专注于通过Socket编程实现TCP(传输控制协议)和UDP(用户数据报协议)的数据包发送程序,这对于理解这两种协议的工作原理及其在Windows环境下的应用至关重要。 首先,TCP是一种面向连接的、可靠的传输协议。...

Global site tag (gtag.js) - Google Analytics