10、使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。 服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。

/**10、使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。

服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。

*
客户端*/

import java.io.*;

import java.net.*;

public
class
Test10_Client {

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

Socket s = new Socket("192.168.0.103", 8080);//
创建Socket对象;

BufferedReader buf = new BufferedReader(

new InputStreamReader(System.in));//
从键盘获取输入流到缓冲区;

BufferedWriter bufout=new BufferedWriter(new OutputStreamWriter(s.getOutputStream())

);//
创建一个输出流

BufferedReader bufIn =
new
BufferedReader(new InputStreamReader(

s.getInputStream()));//
获取输入流……;

String line = null;

while ((line = buf.readLine()) !=
null) {

if ("over".equals(line))

break;

bufout.write(line);

bufout.newLine();

bufout.flush();

Stringstr=bufIn.readLine();

System.out.print("server:"+str);

}

s.close();

}

}

/**服务器端

*/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;

public
class
Test10_Server {

public
static void
main(String []agrs)throws Exception

{

ServerSocket ss=new ServerSocket(8080);

Socket s= ss.accept();

String ip=s.getInetAddress().getHostAddress();

System.out.println(ip+"we are connected!");

BufferedReader buf =new BufferedReader(new InputStreamReader(s.getInputStream()));

BufferedWriter bufout=new BufferedWriter(newOutputStreamWriter(s.getOutputStream())

);//
创建一个输出流

// bufout.write(ip+"we are connected!");

String line=null;

while((line=buf.readLine())!=null){

System.out.println(line);

StringBuffer re=new StringBuffer(line);//字符串反转处理

Stringstr=re.reverse().toString();

System.out.println(re+"++   ++"+str);//服务器本地输出

bufout.write(str);//将字符反转并输出到客户端

bufout.newLine();

bufout.flush();

}

s.close();

}

}

10、使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。 服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。,布布扣,bubuko.com

时间: 2024-12-26 01:41:11

10、使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。 服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。的相关文章

C++_第七章函数的基本知识_求阶乘的子函数_ 函数参数类型为数组_ 求数组内所有元素和、部分元素和的方法_实现了先从键盘输入到一个数组中,再用for循环取读出数组中的元素 for循环也可以用break来结束循环的

/* 第七章函数的基本知识 */ /*01)c++对于返回值有一定的限制:可以是常量.变量.指针.结构对象或表达式,但不可以是数组02)c++返回数组的方法:将数组作为结构会对象组成部分来返回03)函数遇到return则结束该函数04)如果一个函数的两房额参数类型相同,则必须分别制定每个参数的类型,而不能像声明常规变量那样,将声明组合在一起05)*/ //本代码注意double类型的写法以及double和int类型数据的转换 1 #include <iostream> 2 3 void che

JAVA 统计键盘输入的一个字符串中的数字,字母大小写和其他。

package Code503; import java.util.Scanner;/*题目:统计键盘输入的一个字符串中的数字,字母大小写和其他. */ public class CodeStringCount { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入一个字符串"); String input = scanner

二、网络编程-socket之TCP协议开发客户端和服务端通信

知识点:之前讲的udp协议传输数据是不安全的,不可靠不稳定的,tcp协议传输数据安全可靠,因为它们的通讯机制是不一样的.udp是用户数据报传输,也就是直接丢一个数据包给另外一个程序,就好比寄信给别人,信丢了你也不知道,tcp传输需要先和服务端建立连接,当客户端与服务器连接时,服务器会给出应答,我俩连上了,而且数据传过来还会进行一个数据包数量验证,不一致会重新发送,还有其他种种验证,总之保证了数据传输安全可靠   这一章主要介绍使用套接字,编写一个tcp协议客户端和服务端.同样要用到上一章节提到小

TCP协议的三次握手+四次断开

TCP协议的三次握手 1.TCP/IP协议概述 TCP/IP协议(Transmission Control Protocol/Internet Protocol)叫做传输控制/网际协议,又叫网络通讯协议,这个协议是Internet国际互联网络的基础.TCP/IP是网络中使用的基本的通信协议.虽然从名字上看TCP/IP包括两个协议,传输控制协议(TCP)和网际协议(IP),但TCP/IP实际上是一组协议,它包括上百个各种功能的协议,如:远程登录.文件传输和电子邮件等,而TCP协议和IP协议是保证数

TCP协议详解

TCP协议   传输控制协议 Transmission Control Protocal 功能点两点: 1.一个是传输功能:主要工作是建立连接和关闭连接 2.另一个是控制功能:主要工作是保证传输的可靠 建立连接的过程:三次握手 1.给对方拨号 2.接听,喂,你好,请问你哪位 3.我是强子 关闭连接过程:四次挥手 保证可靠 详细介绍三次握手过程: 第一次握手:客户端发送SYN包至服务器,并进入SYN_SENT状态,等待服务器确认 第二次握手:服务器收到客户端的SYN包,发送一个ACK,同时发送自己

TCP协议三次握手和四次挥手

http://www.cnblogs.com/rootq/articles/1377355.html TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)

TCP协议三次握手

TCP协议三次握手过程分析 TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急) Sequence number(顺序号码) Acknowledge nu

Windows下基于TCP协议的大文件传输(流形式)

简单实现TCP下的大文件高效传输 在TCP下进行大文件传输,不像小文件那样直接打包个BUFFER发送出去,因为文件比较大可能是1G,2G或更大,第一效率问题,第二TCP粘包问题.针对服务端的设计来说就更需要严紧些.下面介绍简单地实现大文件在TCP的传输应用. 粘包出现原因:在流传输中出现,UDP不会出现粘包,因为它有消息边界(参考Windows 网络编程) 1 发送端需要等缓冲区满才发送出去,造成粘包 2 接收方不及时接收缓冲区的包,造成多个包接收 解决办法: 为了避免粘包现象,可采取以下几种措

TCP协议中的SO_LINGER选项

TCP协议中的SO_LINGER选项 SO_LINGER选项用来设置延迟关闭的时间,等待套接字发送缓冲区中的数据发送完成.没有设置该选项时,在调用close()后,在发送完FIN后会立即进行一些清理工作并返回.如果设置了SO_LINGER选项,并且等待时间为正值,则在清理之前会等待一段时间. 以调用close()主动关闭为例,在发送完FIN包后,会进入FIN_WAIT_1状态.如果没有延迟关闭(即设置SO_LINGER选项),在调用tcp_send_fin()发送FIN后会立即调用sock_or