求编写一个基于TCPIP的文件传输系统,在linux下运行,用C编写 有客户端和服务器端 求高人棒棒忙
其实大家如果对tcp/ip网络编程这一块不是很熟悉的话,还有一个好办法就是直接编写IO 操作的程序,通过Xinetd来管理网络这一块,一样可以实现的,而且非常方便. 这样就不需要别人帮你创建服务端了.至于客户端,没有办法,如果可以的话,可以采用tcp工具替代,当然这些都是歪路子. 如果只是文件传输的话,就选用FTP原生的服务器吧,比自己折腾得稳定的多.
晕....何必那么麻烦呢? NFSsamba http ftp都可以实现.

本人想自学网络编程,现在手里有两本书一本是TCPIP协议卷二,一本是UNIX网络编程,我应该先看哪本会好一些?
你好! 最好先把linux熟悉了,然后看TCPIP协议卷,了解TCP/IP协议,然后看Unix网络编程,可以相辅相成看. 打字不易,采纳哦!

TCP/IP协议分为哪四层,具体作用是什么?
我知道TCP/IP协议分为哪四层,具体作用是什么。TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为:应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。传输层:在此层中,它提供了节点间的数据传送,应用程序之间的通信服务,主要功能是数据格式化、数据确认和丢失重传等。如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。网络接口层(主机-网络层):接收IP数据报并进行传输,从网络上接收物理帧,抽取IP数据报转交给下一层,对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。拓展内容。TCP/IP 是基于 TCP 和 IP 这两个最初的协议之上的不同的通信协议的大的集合。
具体分为:网络访问层、网际互连层、传输层(主机到主机)、和应用层。1.应用层对应于OSI参考模型的高层,为用户提供所需要的各种服务,例如:FTP、Telnet、DNS、SMTP等.2.传输层传输层对应于OSI参考模型的传输层,为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性。该层定义了两个主要的协议:传输控制协议(TCP)和用户数据报协议(UDP).TCP协议提供的是一种可靠的、面向连接的数据传输服务;而UDP协议提供的则是不可靠的、无连接的数据传输服务.3.网际互联层网际互联层对应于OSI参考模型的网络层,主要解决主机到主机的通信问题。它所包含的协议设计数据包在整个网络上的逻辑传输。注重重新赋予主机一个IP地址来完成对主机的寻址,它还负责数据包在多种网络中的路由。该层有四个主要协议:网际协议(IP)、地址解析协议(ARP)、互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)。IP协议是网际互联层最重要的协议,它提供的是一个不可靠、无连接的数据报传递服务。4.网络接入层(即主机-网络层)网络接入层与OSI参考模型中的物理层和数据链路层相对应。它负责监视数据在主机和网络之间的交换。事实上,TCP/IP本身并未定义该层的协议,而由参与互连的各网络使用自己的物理层和数据链路层协议,然后与TCP/IP的网络接入层进行连接。拓展资料:TCP/IP参考模型是计算机网络的祖父ARPANET和其后继的因特网使用的参考模型。ARPANET是由美国国防部DoD(U.S.Department of Defense)赞助的研究网络。逐渐地它通过租用的电话线连结了数百所大学和政府部门。当无线网络和卫星出现以后,现有的协议在和它们相连的时候出现了问题,所以需要一种新的参考体TCP/IP参考模型系结构。这个体系结构在它的两个主要协议出现以后,被称为TCP/IP参考模型(TCP/IP reference model)。由于国防部担心他们一些珍贵的主机、路由器和互联网关可能会突然崩溃,所以网络必须实现的另一目标是网络不受子网硬件损失的影响,已经建立的会话不会被取消,而且整个体系结构必须相当灵活。
TCP/IP协议分为:数据链路层 、网络层 、传输层 、应用层。1.数据链路层:数据链路层是物理传输通道,可使用多种传输介质传输,可建立在任何物理传输网上。比如光纤、双绞线等2.网络层:其主要功能是要完成网络中主机间“分组”(Packet)的传输。3.传输层:其主要任务是向上一层提供可靠的端到端(End-to-End)服务,确保“报文”无差错、有序、不丢失、无重复地传输。它向高层屏蔽了下层数据通信的细节,是计算机通信体系结构中最关键的一层。4.应用层:应用层确定进程间通信的性质,以满足用户的需要。
通讯协议采用了4层的层级结构,每一层都呼叫下一层所提供的网络来完成自己的需求。这4层分别为: 应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。
TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为: 应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。传输层:在此层中,它提供了节点间的数据传送,应用程序之间的通信服务,主要功能是数据格式化、数据确认和丢失重传等。如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。 网络接口层(主机-网络层):接收IP数据报并进行传输,从网络上接收物理帧,抽取IP数据报转交给下一层,对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。

C# TCPIP传送数据
端口号和ip地址自己改一下 using System.Net;using System.Net.Sockets;static void Main(string[] args)//服务器段{int port = 2000;string host = "127.0.0.1";/**////创建终结点(EndPoint)IPAddress ip = IPAddress.Parse(host);//把ip地址字符串转换为IPAddress类型的实例IPEndPoint ipe = new IPEndPoint(ip, port);//用指定的端口和ip初始化IPEndPoint类的新实例/**////创建socket并开始监听Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建一个socket对像,如果用udp协议,则要用SocketType.Dgram类型的套接字s.Bind(ipe);//绑定EndPoint对像(2000端口和ip地址)s.Listen(0);//开始监听Console.WriteLine("等待客户端连接");/**////接受到client连接,为此连接建立新的socket,并接受信息Socket temp = s.Accept();//为新建连接创建新的socketConsole.WriteLine("建立连接");string recvStr = "";byte[] recvBytes = new byte[1024];int bytes;bytes = temp.Receive(recvBytes, recvBytes.Length, 0);//从客户端接受信息recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes);/**////给client端返回信息Console.WriteLine("server get message:{0}", recvStr);//把客户端传来的信息显示出来string sendStr = "ok!Client send message successful!";byte[] bs = Encoding.ASCII.GetBytes(sendStr);temp.Send(bs, bs.Length, 0);//返回信息给客户端temp.Close();s.Close();Console.ReadLine();}static void Main(string[] args)//客户端{try{int port = 2000;string host = "127.0.0.1";/**////创建终结点EndPointIPAddress ip = IPAddress.Parse(host);//IPAddress ipp = new IPAddress("127.0.0.1");IPEndPoint ipe = new IPEndPoint(ip, port);//把ip和端口转化为IPEndpoint实例/**////创建socket并连接到服务器Socket c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建SocketConsole.WriteLine("Conneting…");c.Connect(ipe);//连接到服务器/**////向服务器发送信息string sendStr = "hello!This is a socket test";byte[] bs = Encoding.ASCII.GetBytes(sendStr);//把字符串编码为字节Console.WriteLine("Send Message");c.Send(bs, bs.Length, 0);//发送信息/**////接受从服务器返回的信息string recvStr = "";byte[] recvBytes = new byte[1024];int bytes;bytes = c.Receive(recvBytes, recvBytes.Length, 0);//从服务器端接受返回信息recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes);Console.WriteLine("client get message:{0}", recvStr);//显示服务器返回信息/**////一定记着用完socket后要关闭c.Close();}catch (ArgumentNullException e){Console.WriteLine("argumentNullException: {0}", e);}catch (SocketException e){Console.WriteLine("SocketException:{0}", e);}Console.WriteLine("Press Enter to Exit"); }
可以直接用TcpClient和TcpListener做---TCP方式 或者用UdpClient更简单--UDP方式最好找本网络编程的书来看。他分为同步通信与异步通信,一般是用异步通信。同步的UDP通信最简单,这里有个例子:http://www.phpchinaz.cn/c/CSharp/52_5201_1231915295.html
编写如LS就好了,就是开2个FROM窗口,同时监听一个固定端口,之后接收就好了,就是一个发消息,另外一个就能接收到。
看不懂哦,,,

针对Java 网络编程,有哪些比较好的书推荐
Java 网络编程,比较好的书: ava TCPIP Socket编程(中文版) Java NIO (中文版) 中文的好理解 java 7 出了AIO 你有必要去百度了解下

本文由 在线网速测试 整理编辑,转载请注明出处。