63 网络编程(四)——TCP编程

TCP编程

TCP编程是面向连接的数据传输,所以需要时用IO流来建立连接。

用户输出流到服务器,服务器输入流接收数据。

服务器输出流到用户,用户输入流接收。

基本流程

服务器端

  • 创建服务器端:ServerScoekt 对象
  • 阻塞时监听用户接入:accep() 返回Socket对象
  • 建立连接:与返回的Socket对象建立IO流,getInputStream()方法与getOutputStream方法
  • 处理数据
  • 关闭流,关闭Socket对象,关闭服务器(一般不关服务器)

用户端

  • 创建Socket对象:Socket(targetHost,targetPort)
  • 建立连接:创建输出流
  • 传输数据:输入流写
  • 关闭流
  • 关闭Socket对象

基础版本示例

服务器端

package _20191218;

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

/**
 * 通过tcp传输数据的服务端,实现的是服务器端
 * @author TEDU
 *
 */
public class TCPServer {
	public static void main(String[] args) throws IOException {
		System.out.println("-----server------");
		//建立服务器
		ServerSocket server = new ServerSocket(6677);
		//阻塞式接收Socket
		Socket client = server.accept();
		//建立连接
		DataInputStream dis = new DataInputStream(client.getInputStream());//选择需要的合适的流,不需要如本文的流
		//接收数据并处理
		Object obj1 = dis.readUTF();
		Object obj2 = dis.readInt();
		Object obj3 = dis.readFloat();
		System.out.println(obj1);
		System.out.println(obj2);
		System.out.println(obj3);
		//关闭流及服务器
		dis.close();
		client.close();
		//server.close()//服务器无需关闭
	}
}

  

用户端

package _20191218;

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

public class TCPClient {
	public static void main(String[] args) throws UnknownHostException, IOException {
		System.out.println("-----client------");
		//新建客户端Socket
		Socket client = new Socket("localhost",6677);
		//建立连接
		DataOutputStream dos = new DataOutputStream(client.getOutputStream());
		//发送数据
		String str = "fuck";
		dos.writeUTF(str);
		dos.writeInt(89);
		dos.writeFloat(213.4f);
		//关闭流和连接
		dos.close();
		client.close();
	}
}

  

测试结果

模拟登陆服务器

原文地址:https://www.cnblogs.com/Scorpicat/p/12059021.html

时间: 2024-10-10 01:31:28

63 网络编程(四)——TCP编程的相关文章

网络编程之TCP编程

html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption

python网络编程之TCP编程

TCP编程 模拟客户端和服务器端进行通信.其中要素为ip地址和端口. 客户端: 建立socket对象,并且设置为TCP模式 用connect()方法设置端口和ip地址,需要传入一个set. 可以进行接受和发送的操作 关闭socket连接 服务器端: 因为一个服务器打开一个固定端口进行监听,但是可能响应不同的客户端,所以可以定义不同的进程序进行处理. 建立socket对象 绑定IP地址和端口 监听 利用进程响应不同的客户端请求,可以发送和接受数据等操作 关闭socket连接 实例: 客户端: im

Python—网络编程之tcp编程

服务端代码 import socket # 1.创建流式套接字实例 # server = socket.socket() server = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0) # 2.服务端监听绑定的ip和port(参数是元组) server.bind(("127.0.0.1", 8832)) # 3.设置监听套接字,创建监听队列 server.setsockopt(socket.SOL_SOCKET, socket

嵌入式 Linux网络编程(二)——TCP编程模型

嵌入式 Linux网络编程(二)--TCP编程模型 一.TCP编程模型 TCP编程的一般模型如下图: TCP编程模型分为客户端和服务器端编程,两者编程流程如下: TCP服务器端编程流程: A.创建套接字: B.绑定套接字: C.设置套接字为监听模式,进入被动接受连接状态: D.接受请求,建立连接: E.读写数据: F.终止连接. TCP客户端编程流程: A.创建套接字: B.与远程服务器建立连接: C.读写数据: D.终止连接. 二.TCP迭代服务器编程模型 TCP循环服务器接受一个客户端的连接

网络编程四:互联网中TCP Socket服务器的实现过程需要考虑哪些安全问题

这篇曾经是答在这里的 互联网中TCP Socket服务器的实现过程需要考虑哪些安全问题- auxten 的回答 最近总是有人问我相关的问题,在专栏补发一下,希望能帮到更多人 首先,这是个很大的命题,之前在360负责过几个对外的服务的研发,也算是有点小经验,我试着答一下 在Internet环境下安全问题我主要分为如下几类 1. 信息传输过程中被黑客窃取 2. 服务器自身的安全 3. 服务端数据的安全 首先,如果能用https,就尽量用https,能用nginx等常见服务器,就用常见服务器,主要能避

linux网络编程 基于TCP的程序开发

面向连接的TCP程序设计 基于TCP的程序开发分为服务器端和客户端两部分,常见的核心步骤和流程: 其实按照上面这个流程调用系统API确实可以完全实现应用层程序的开发,一点问题没有.可随着时间的推移,你会觉得这样子的开发毫无激情.为什么TCP的开发就要按照这样的流程来呢?而且一般出的问题几乎都不在这几个系统调用上,原因何在?当我们弄清网络开发的本质,协议栈的设计原理.数据流向等这些问题的答案也就会慢慢浮出水面了.接下来这几篇博文主要是围绕网络编程展开,目的是引出后面对于Linux下TCP/IP协议

linux网络编程笔记——TCP

1.TCP和UDP TCP是长连接像持续的打电话,UDP是短消息更像是发短信.TCP需要消耗相对较多的资源,但是传输质量有保障,UDP本身是不会考虑传输质量的问题. 2.网络传输内容 我习惯的做法是直接通过TCP传送结构体,当然前提是收发两端都在程序里对目标结构体有充分的定义.特别说明的一点是,要小心收发两端处理器的大小端问题!而且传输信息头里必须包含长度信息,而且通用的是大端.但是,这里的长度和结构体,我选择用小端进行传输. 3.TCPserver实现 参考了别人多线程的回调写法,看起来不错.

Linux 网络编程——TCP编程

概述 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议. TCP 具有以下特点: 1)电话系统服务模式的抽象 2)每一次完整的数据传输都要经过建立连接.使用连接.终止连接的过程 3)可靠.出错重传.且每收到一个数据都要给出相应的确认,保证数据传输的可靠性 TCP 编程的 C/S 架构 基于 TCP 的网络编程开发分为服务器端和客户端两部分,常见的核心步骤和流程如下: TCP 客户端编程 所需头文件:#inclu

五十四、linux 编程——TCP 编程模型

54.1 编程模型介绍 54.1.1 TCP 客户端服务器编程模型 客户端调用序列 调用 socket 函数创建套接字 调用 connect 连接服务器端 调用 I/O 函数(read/write) 与服务器端通讯 调用 close 关闭套接字 服务器端调用序列 调用 socket 函数创建套接字 调用 bind 绑定本地地址和端口 调用 listen 启动监听 调用 accept 从已连接队列中提取客户连接 调用 I/O 函数(read/write)与客户端通讯 调用 close 关闭套接字