`
8366
  • 浏览: 813166 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

TCP编程

阅读更多

 

 

总结:

 

服务器程序编写:


①调用ServerSocket(int port)创建一个服务器端套接字,并绑定到指定端口上;②调用accept(),监听连接请求,如果客户端请求连接,则接受连接,返回通信套接字。③调用Socket类的getOutputStream()和getInputStream获取输出流和输入流,开始网络数据的发送和接收。④最后关闭通信套接字。


客户端程序编写:


①调用Socket()创建一个流套接字,并连接到服务器端; ②调用Socket类的getOutputStream()和getInputStream获取输出流和输入流,开始网络数据的发送和接收。 ③最后关闭通信套接字。

 

 

下面我们动手写一个使用TCP协议通信的服务器端可客户端:

 

服务器端:

package cn.com.xinli.test.socket;
import java.net.*;
import java.io.*;
public class SocketServer  extends Thread
{
	
	private  Socket socket;
	 SocketServer(Socket s)
	 {
		 this.socket=s;
	 }
	 public void run()
	 {
		 try
		 {
			  OutputStream os=socket.getOutputStream();
			  /*在这里我们使用了带缓冲的输出流,因此与需要调用flush()
			   *或者当缓冲区满了才会发送数据 
			   * 
			   * */
			  
			  BufferedOutputStream bos=new BufferedOutputStream(os);
		      InputStream is=socket.getInputStream();
		      bos.write("欢迎你,我收到消息了!".getBytes());
		      bos.flush();
		      byte[] buf=new byte[100];
		      int len=is.read(buf);
		      System.out.println(new String(buf,0,len));
		     
		      bos.close();
		      os.close();
		      is.close();
		      socket.close();
			 
		 }
		 catch(Exception e)
		 {
			 e.printStackTrace();
		 }
		  
	 }
	  public static void main(String[] args) 
	  {
		  Socket socket=new Socket();
		  SocketServer  socketServer=new SocketServer(socket);
		  socketServer.server();
		 
		  
		
	  }
	  public  static void server()
	  {
		  System.out.println("服务器启动!");
		  try {
			  
			  
			  ServerSocket ss=new ServerSocket(6000);
			  while(true)
			  {
				  Socket socket=ss.accept();
				  new SocketServer(socket).start();
			  }
		     
		    }
		    catch (Exception ex) {
		      ex.printStackTrace();
		    }
	  }
	}

 

客户端:

package cn.com.xinli.test.socket;
import java.net.*;
import java.io.*;
public class SocketClient  
{

	  public static void main(String[] args)
	  {
		  
		   SocketClient.client();
		  
		
	  }
	 
	  public static void client()
	  {
		  System.out.println("客户端启动!");
	    try {
	      Socket s=new Socket(InetAddress.getByName(null),6000);
	      OutputStream os=s.getOutputStream();
	      InputStream is=s.getInputStream();
	      byte[] buf=new byte[100];
	      int len=is.read(buf);
	      System.out.println(new String(buf,0,len));
	      os.write("我是流氓我怕谁".getBytes());
	      os.close();;
	      is.close();
	      s.close();
	    }
	    catch (Exception ex) {
	      ex.printStackTrace();
	    }

	  }
	}

 

 

 

先运行服务器端,后运行客户端,在双方完成通信以后,服务器端并没有推出,因为服务器端使用了多线程,每次来一个客户端请求都会开一个线程来处理

 

分享到:
评论

相关推荐

    TCP编程实例

    本教程将基于LabVIEW,一个强大的图形化编程环境,探讨如何进行TCP编程。LabVIEW因其直观的编程界面和丰富的功能,常被用于数据采集、仪器控制和测试测量等应用,而TCP编程则能帮助我们实现设备间的高效通信。 首先...

    网络编程TCP编程

    本文将围绕Winsock接口展开,内容涵盖了TCP协议的基本概念、编程模型以及如何使用Winsock API实现TCP编程。 ### TCP编程的基础知识点 #### 1. 套接字基础知识 - 套接字(Socket)是在应用层和传输层之间的一个...

    tcp.rar_TCP编程pdf_tcp

    TCP编程是网络编程中的重要环节,对于任何希望深入理解网络通信或者开发网络应用的初学者来说,都是必不可少的知识点。 在TCP编程中,首先要理解的是TCP的三次握手建立连接的过程。当一个主机想要与另一个主机建立...

    TCP.rar_tcp编程

    在TCP编程中,开发者通常会使用像Visual C++这样的编程环境来实现网络通信功能。本篇文章将深入探讨TCP编程的基本概念、原理以及如何在Visual C++环境下进行实践。 首先,TCP协议确保了数据的可靠传输,它通过三次...

    Socket实现tcp编程

    文件“TestSocket”可能包含了一个简单的Socket TCP编程示例,可能涵盖了服务器端和客户端的代码实现,读者可以通过阅读和运行这个示例来加深理解。在实际开发中,还可以结合错误处理、超时机制、性能优化等技术,让...

    单播通信-网络编程 Winsock的TCP编程

    本教程主要关注单播通信,即一对一的通信模式,通过Winsock进行TCP编程,模拟FTP(文件传输协议)功能。我们将深入探讨TCP编程的基础知识、C/S架构、文件操作以及如何在C++中实现这一过程。 TCP(Transmission ...

    MFC TCP编程的几个代码例子

    MFC提供了对TCP编程的支持,使得开发者可以方便地在Windows环境下进行网络通信。 在"MFC TCP编程"这个主题中,我们主要探讨如何利用MFC库进行TCP客户端和服务器端的编程。以下是一些关键知识点: 1. **...

    TCP编程及编程说明

    TCP编程通常涉及到网络通信,文件传输,服务器和客户端应用的开发等场景。本篇将深入探讨TCP编程的关键概念、流程以及在文件传输中的应用。 一、TCP协议基础 TCP是基于连接的协议,它在数据传输前会先建立连接,...

    TCP编程程序demo

    在Linux系统中,TCP编程是网络编程的重要组成部分,主要用于实现可靠的数据传输。TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,它确保了数据包在网络中的有序和无损...

    Labview TCP编程.zip_DEMO_LabVIEW tcp_LabVIEW的TCP_labview编程

    10. **实时系统中的TCP编程**:在LabVIEW RT(实时版)环境下,TCP编程也有其特殊考虑,如内存管理和实时性能优化。 通过深入研究这些DEMO,用户不仅可以学习到TCP的基本概念,还能掌握在LabVIEW中实现TCP通信的...

    用JAVA进行TCP编程(原创)

    本文将深入探讨如何使用Java进行TCP编程,分享一些原创思路和技术要点。 首先,我们要了解Java中的Socket类和ServerSocket类,它们是TCP编程的基础。`ServerSocket`用于创建服务器端的监听套接字,等待客户端的连接...

    C#tcp编程_聊天程序

    在IT行业中,网络编程是构建分布式系统的关键技术之一,而C#语言提供了强大的TCP编程支持。本项目"**C# tcp编程_聊天程序**"旨在实现一个基于TCP协议的聊天应用,利用C#的异步编程特性提高性能,并且自定义了协议来...

    C#的TCP编程实例

    本实例“C#的TCP编程实例”着重讲解如何在C#环境下实现TCP客户端与服务器端的通信,这对于理解和应用网络编程至关重要。 TCP是一种基于IP(Internet Protocol)的传输层协议,它提供了端到端的可靠数据传输,确保...

    Linux 网络编程——TCP编程示例代码

    本篇文章将深入探讨Linux环境下的TCP编程,通过实例代码帮助理解相关概念。 首先,TCP编程涉及的主要组件包括socket接口、套接字地址结构(如sockaddr_in)以及网络IO模型。Socket接口是操作系统提供的API,用于...

    CSharp-Tcp.rar_TCP CSharp _TCP客户端 C#_cSharp-Tcp_tcp_tcp编程c#

    TCP编程涉及的概念还包括错误处理、异步编程、数据序列化与反序列化等。例如,为了提高性能,通常会采用异步操作处理客户端请求,如TcpClient的BeginConnect和EndConnect方法,以及TcpListener的...

    C#同步Tcp编程几种方式的聊天实现

    本文将详细探讨使用C#实现同步TCP编程的四种方式,并以实际的项目示例进行解析。 首先,我们来看“TcpSyncDemo.rar”,这是一个基于C#的同步TCP客户端和服务端的实现。同步TCP编程意味着程序会阻塞等待数据的发送和...

    一个简单的UDP/TCP编程库,可以简化UDP/TCP编程,提供堵塞和非堵塞模式

    标题中的“一个简单的UDP/TCP编程库”是指一个专门用于UDP和TCP网络通信的软件开发库,它旨在简化程序员在处理这些协议时的工作流程。这个库不仅支持两种基本的网络传输协议,UDP(用户数据报协议)和TCP(传输控制...

    计算机网络扩展---TCP编程-2019网工.zip

    本资料包“计算机网络扩展---TCP编程-2019网工.zip”显然专注于教授如何使用C语言进行TCP编程。 一、TCP编程基础 1. **TCP连接建立**:TCP连接的建立遵循三次握手过程,确保双方都能正确地同步和建立连接。客户端...

    liunx下QT tcp编程实例

    总的来说,Linux下的QT TCP编程涉及了网络编程的基本概念、QT的网络API使用、错误处理、异步模型和多线程等知识。通过实践`tcpServer`和`tcpClient`项目,你可以深入理解这些概念,并具备在实际项目中应用的能力。

Global site tag (gtag.js) - Google Analytics