package tcp;
import java.io.*;
import java.net.*;
public class TcpServer {
/**
* @param args
*/
public static void main(String[] args) {
TcpServer ts = new TcpServer();
//多线程的例子
ts.ThreadServer();
//单线程的例子.
//ts.easySocket();
}
public void easySocket (){
try {
ServerSocket ss = new ServerSocket(5000);
Socket s = ss.accept();
System.out.println("sssss");
InputStream is = s.getInputStream();
OutputStream os = s.getOutputStream();
String str = "大家好!这是server端的信息!";
os.write(str.getBytes());
//通过包装类,来实现一行一行的读取.不用自己写判断.
BufferedReader br = new BufferedReader(new InputStreamReader(is));
System.out.println(br.readLine());
/*只能读取一个字节,要么就自己写方法,判断是回车还是换行.
byte[] buf = new byte[1024];
int len = is.read(buf);
System.out.println(new String(buf,0,len));
is.close();
*/
//关闭包装类的对象,就会自动的关闭底层类的对象.所以不需要写is.close()
br.close();
os.close();
s.close();
ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public void ThreadServer(){
try {
ServerSocket ss = new ServerSocket(3000);
while(true){
Socket s = ss.accept();
new Thread(new TransformSocket(s)).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
package tcp;
import java.io.*;
import java.net.Socket;
public class TransformSocket implements Runnable {
private Socket s = null;
public TransformSocket(Socket s){
this.s = s;
}
public void run() {
try {
InputStream is = s.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
OutputStream os = s.getOutputStream();
PrintWriter pw = new PrintWriter(os,true);
//可以再while循环中做更多的事情.
while(true){
String readLine = br.readLine();
if(readLine.equals("quit")){
break;
}
System.out.println(readLine);
pw.println(readLine+"---!!!!!!");
}
pw.close();
br.close();
s.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
《mbed TCP应用程序基础》是基于RDA5981芯片进行网络通信开发的重要参考资料,主要面向使用mbed平台的开发者。mbed是一个开源硬件和软件平台,它为物联网(IoT)设备提供了便捷的开发环境。RDA5981是一款高性能、低...
网络样例(包含TCP应用程序)网络样例(包含TCP应用程序)网络样例(包含TCP应用程序)
在TCP应用程序中,首先需要建立客户端和服务器之间的连接,这一过程称为三次握手。当连接建立后,客户端可以发送消息到服务器,服务器也可以回应。TCP通过拥塞控制和流量控制机制来避免数据丢失或拥塞。 UDP则是一...
此外,TCP应用程序开发还涉及到端口号的选择,错误码的处理,套接字选项的设置(如SO_REUSEADDR和SO_LINGER),以及性能优化等技术。例如,可以通过设置TCP_NODELAY选项来禁用Nagle算法,提高小数据包的传输效率。 ...
以上简述了Java网络编程中涉及T/TCP的应用程序编写方法,包括了如何根据主机支持情况选择合适的TCP或T/TCP操作,以及在客户端和服务器端的实现策略。理解这些概念对于开发高效的网络应用至关重要。在实际编程时,还...
通过阅读和分析这两个C语言实现的聊天程序,你可以掌握如何使用socket API进行实际的网络通信,并为今后的网络应用开发打下坚实基础。同时,这些项目也是对TCP和UDP协议原理的实践验证,有助于深化理论知识的理解。
在Visual C++中,开发TCP应用程序通常需要使用Windows Socket API(Winsock),这是一个与平台相关的API,但其设计目标是跨平台兼容,使得编写TCP应用更加简便。 在实际编程中,TCP通信不仅涉及这些基本的API调用,...
优化TCP应用程序通常涉及减少延迟、提高吞吐量和降低资源消耗。这可能涉及到选择合适的缓冲区大小、正确处理错误、使用合适的数据结构和算法,以及考虑使用更高效的并发模型。 10. **调试与日志**: 在开发TCP...
TCP-test-util 是一个专为测试TCP应用程序设计的实用工具,它可以帮助开发者和网络管理员验证TCP连接的正确性,分析性能瓶颈,以及进行故障排除。这个工具用Java语言编写,因此具备跨平台的特性,可以在任何安装了...
Meetup 应用程序是一个 tcp 应用程序,它存储有关开发人员聚会的信息,并允许用户回复活动并查看有多少人参加。 管理员 - 通过提供正确的密码进行身份验证 - 可以设置活动的详细信息、查看完整的与会者列表以及清除 ...
在IT领域,网络通信是计算机系统之间交换信息的...熟练掌握相关工具的使用,可以帮助我们更有效地实现和调试TCP应用程序,优化网络性能,确保数据传输的稳定性和可靠性。在IT行业中,这是一项基础但至关重要的技能。
基于TCP的通信应用程序如标题所描述,通常涉及到客户端和服务器之间的可靠数据交换。在这个场景中,局域网通信是指在有限的网络范围内,如办公室、家庭或校园等,设备之间进行的数据传输。 首先,TCP协议提供了面向...
在IT领域,MFC(Microsoft Foundation Classes)是微软提供的一套C++库,用于构建Windows应用程序。MFC封装了Windows API,使得开发者可以更高效地编写...同时,这也为开发自己的串口和TCP应用程序提供了基础和灵感。
通过这个程序,我们可以看到数据的发送和接收过程,这对于理解和调试TCP应用程序非常有帮助。通常,演示程序会包含发送字符串、接收数据、断开连接等基本操作,同时可能会有错误处理机制来应对网络异常。 在实际...
在IT领域,QNX操作系统是一种实时操作系统(RTOS),被广泛应用于汽车、医疗设备、工业自动化等领域,因其稳定性和高效性而备受青睐。...通过实践和研究,可以掌握在QNX环境下构建稳定、高效的TCP应用程序的技巧。
Modbus TCP客户端程序是工业自动化领域中常用的通信协议,它允许设备之间通过TCP/IP网络进行数据交换。在本文中,我们将深入探讨如何使用C#语言编写一个Modbus TCP客户端程序,以及相关的技术要点。 首先,了解...
1. **套接字(Sockets)**:套接字是网络通信的基础,是应用程序与网络协议交互的接口。在C++中,通常通过Windows Socket API(Winsock)来创建和管理套接字。 2. **服务器端程序**:服务器端负责监听特定端口,...
TCP(Transmission Control Protocol...通过研究这个“tcp聊天代码”,你可以深入了解TCP协议的工作原理,以及如何在实际应用中实现可靠的数据传输。同时,这也是一个很好的练习,有助于提升网络编程和并发处理的能力。
STM32TCP程序是基于STM32微控制器的TCP服务器实现,主要利用了STMicroelectronics的STM32F107型号芯片,并结合了LAN8720以太网接口芯片来实现网络通信功能。STM32F107是一款高性能、低功耗的ARM Cortex-M3内核微控制...
此外,可能会有性能测试,例如并发连接的数量、数据传输速率等,这些都是评估TCP应用程序质量的重要指标。 理解并实现TCP测试程序有助于开发者深入掌握网络编程的基本原理,提升对TCP协议的理解。同时,这样的程序...