基于TCP/IP协议的Socket网络编程

基于TCP/IP的Socket网络编程

TCP协议:它是一种面向连接的可靠协议。
特点:传输数据安全稳定,数据不会丢失,但是速度较慢。
TCP 协议类似于使用手机打电话,可以保证把信息传递给别人

服务器端:
(1)创建服务器套接字
(2)等待客户端连接请求,一旦接收请求,将和客户端建立连接,返回一个Socket套接字
(3)使用套接字获取输入流和输出流
(4)通信:使用输入流读取接收到的信息,使用输出流写发送的信息。
(5)关闭Socket套接字
(6)关闭服务器套接字

package com.socket;

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

public class SocketServer {
	public static void main(String[] args) {

		try {
//			(1)创建服务器套接字,后面的“8888”为端口号,客户端需要知道这个端口才能进行请求
			ServerSocket ss = new ServerSocket(8888);
			
//			(2)等待客户端连接请求,一旦接收请求,将和客户端建立连接,返回一个Socket套接字
			Socket socket = ss.accept();
			
//			(3)使用套接字获取输入流和输出流对象
			InputStream input = socket.getInputStream();
			
//			(4)通信:使用输入流读取接收到的信息,使用输出流写发送的信息。
			byte [] b = new byte[1024];
			int i= input.read(b);
			System.out.println(new String(b));
			
			
			input.close();
//			(5)关闭Socket套接字
			socket.close();
			
//			(6)关闭服务器套接字
			ss.close();
			
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

客户端:
(1)创建套接字,向服务器发送连接请求(需要服务器的IP和端口号),和服务器建立连接。
(2)使用套接字获取输入流和输出流
(3)通信:使用输入流读取接收到的信息,使用输出流写发送的信息。
(4)关闭Socket套接字

package com.socket;

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

/**
 * TCP/IP通信
 *
 */
public class SocketClient {
	public static void main(String[] args) {
		try {
//			(1)创建套接字,向服务器发送连接请求(需要服务器的IP和端口号),和服务器建立连接。
			Socket socket = new Socket("localhost" , 8888);
			
//			(2)使用套接字获取输入流和输出流对象
			OutputStream out = socket.getOutputStream();
			
//			(3)通信:使用输入流读取接收到的信息,使用输出流写发送的信息。
			out.write("你好,server".getBytes());
			
//			(4)关闭Socket套接字
			socket.close();
			
		} catch (UnknownHostException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
}

  • 0
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 0
    评论
在Internet普及的今天,作为Internet工作基础的TCP/IP协议及其编程已经成了IT人业人员所要具备的基本知识与技能。打开国内外各大知名网站的招聘页面,都可以看到类似于“熟悉TCP/IP协议、掌握socket通讯开发”等字样的要求。本书就是为了满足读者在这方面知识的需求而编写的一本TCP/IP协议与基于TCP/IP编程方面的书籍。 本书有以下几个方面的特点: (1)内容的组织上按照协议原理与协议编程分为上、下篇。上篇主要介绍TCP/IP协议簇中的常用协议,下篇专门介绍网络编程知识与技能。 (2)具体在编写每一节的内容时将原理知识与实用技能融为一体。以方便读者学习。 (3)考虑到TCP/IP协议比较抽象,学习起来有一定的难度,所以全书尽量避免使用晦涩难懂专业术语,而用浅显易懂的语言说明问题,努力将书打造成一本人人都读懂书籍。 (4)初学网络程序设计的人员,往往感到网络程序设计内容多,学习进来比较复杂。针对这一问题,本书在讲解网络程序设计时,根据网络程序固有的特点,先总结了网络程序设计的通用模式,然后再举例说明网络程序的设计,使读者易于入手。 (5)Winsock函数内容多,使用起来比较复杂,针对这一问题,笔者在写作时将常用的Winsock函数分散到各种实例中去介绍,然后在最后一章将所有常用的Winsock函数一一作了较为详细说明,并在每个函数后面加入了其应用实例或使用说明。 本书分为上、下两篇内容,上篇内容包含6章,各章主要如下: 第1章:介绍了TCP/IP协议的产生、结构和工作原理,另外本章内容中还简要介绍一一下ISO/OSI RM。 第2章:介绍TCP/IP协议层次结构中网络接口层包含的内容,主要有物理层和数据链路的相关知识。 第3章:介绍TCP/IP协议层次结构中网络层及其相关知识。主要内容有IP数据报格式、IP层的功能、IP地址、ICMP协议、地址转换协议并介绍了IP的最新版本IP v6等。 第4章:介绍TCP/IP协议层次结构中传输层及其相关知识。主要内容有端口的概念、TCP协议和UDP协议的协议数据格式、协议原理和TCP协议与UDP协议的比较等内容。 第5章:介绍TCP/IP协议层次结构中应用层及其相关知识。主要内容有应用层常用协议DNS、FTP、Telnet、HTTP、POP和SMTP的格式、工作原理、协议实例等内容。 第6章:简要的介绍了一下TCP/IP协议在Windows和LINUX操作系统下的实现原理TCP/IP协议的二进制代码。 下篇包含以下6章内容: 第7章:介绍了网络程序设计有关的基础知识、一个网络程序入门实例和Winsock中编写网络程序常用的建立连接、传输数据、关闭连接等有关的函数。 第8章:介绍了TCP程序设计流程、基于C/C++的TCP程序设计实例和基于Java技术的TCP程序设计实例。 第9章:介绍了UDP程序设计流程、基于C/C++的UDP程序设计实例和基于Java技术的UDP程序设计实例。 第10章:介绍了使用MFC中提供的有关类进行网络程序设计知识。 第11章:介绍了Winsock API中各种函数的功能,并举例说明了些函数的使用方法。 本书在编写过程中得到了邮电出版和刘博等编辑的大力支持和帮助,在此表示感谢。由于作者水平有限,错漏之处在所难免,欢迎广大读者批评指正和提出宝贵的意见,可发邮件到。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页
评论

打赏作者

qq_45924373

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值