网络疑问 关于Socket

问题描述

多个客户端与服务器通N*C->S当一个或多个客户端发起连接通信,服务器就可以建立连接;服务器可以自动监听不同客户端发送过来的数据,并分别返回相应的数据给客户端。考虑用Socket通信,但不知道如何做?刚开始接触Socket,没有什么概念,希望各位大侠指点迷津

解决方案

解决方案二:
是否要考虑到什么链接池的问题,如果是要怎么做?请大伙发表下思路,有源码更好了~~~海谢大伙,先。。。
解决方案三:
//FromNetWork客户端主要源代码:publicvoidSendMeg()//发送信息{try{intport=Int32.Parse(textBox3.Text.ToString());//远程主机端口try{tcpClient=newTcpClient(textBox1.Text,port);//创建TcpClient对象实例}catch(Exceptionle){MessageBox.Show("TcpClientError:"+le.Message);}stringstrDateLine=DateTime.Now.ToShortDateString()+""+DateTime.Now.ToLongTimeString();//得到发送时客户端时间netStream=tcpClient.GetStream();//得到网络流sw=newStreamWriter(netStream);//创建TextWriter,向流中写字符stringwords=textBox4.Text;//待发送的话stringcontent=strDateLine+words;//待发送内容sw.Write(content);//写入流sw.Close();//关闭流写入器netStream.Close();//关闭网络流tcpClient.Close();//关闭客户端连接}catch(Exceptionex){MessageBox.Show("SendingMessageFailed!"+ex.Message);}textBox4.Text="";//清空}服务器端主要源代码:publicvoidStartListen()//侦听特定端口的用户请求{//ReceiveMeg();isLinked=false;//连接标志try{intport=Int32.Parse(textBox1.Text.ToString());//本地待侦听端口serverListener=newTcpListener(port);//创建TcpListener对象实例serverListener.Start();//启动侦听}catch(Exceptionex){MessageBox.Show("Can'tStartServer"+ex.Message);return;}isLinked=true;while(true)//进入无限循环等待用户端连接{try{tcpClient=serverListener.AcceptTcpClient();//创建客户端连接对象netStream=tcpClient.GetStream();//得到网络流sr=newStreamReader(netStream);//流读写器}catch(Exceptionre){MessageBox.Show(re.Message);}stringbuffer="";stringreceived="";received+=sr.ReadLine();//读流中一行while(received.Length!=0){buffer+=received;buffer+="rn";//received="";received=sr.ReadLine();}listBox1.Items.Add(buffer);//显示//关闭sr.Close();netStream.Close();tcpClient.Close();}}

解决方案四:
服务器端建议使用异步读写!异步读写,内部是完成端口来实现的,再windows下有着最好的弹性!对于你说的连接池,这是系统自身考虑的,你的应用程序可以不考虑!另外,如果你的客户端非常得多,一般来讲N>100,我值得是同时,还是建议你使用C++结合socket2.0的完成端口来开发。你需要根据实际情况考虑。
解决方案五:
大伙,可以给出vb.net2005的代码?
解决方案六:
想请问下,异步读写是什么意思?可以解释下吗?
解决方案七:
多用户应该要用到多线程.先在服务端建立一个TCPLISTENER监听起来,然后每有一个新的连接就启用一个新的线程处理这个连接
解决方案八:
我最近就在写类似的,我这里代码也不是很完整.但是思路就是这样TCPLISTENER监听开始后,有新的连接你就可以得到一个新的SOCKET或是TCPCLIENT,用SOCKET更"底层"一些.TCPCLIETNT更方便

时间: 2024-08-01 00:53:26

网络疑问 关于Socket的相关文章

linux网络编程之socket(十五) UNIX域套接字编程和socketpair 函数

一.UNIX Domain Socket IPC socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机 制,就是UNIX Domain Socket.虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是 UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包.计算校验和.维护序号和应答等,只是 将应用层数据从一个进程拷贝到另一个进程.UNIX域套接字与TCP套接字相比较,

Unix网络编程 之 socket简介

概述         Socket的英文原意是"孔"或"插座",现在,作为Unix的进程通信机制,常常取"插座"这一意义.日常生活中常见的插座,有的是信号插座,有的是电源插座,有的可以接收信号或能量,有的可以发送信号或能量.举例来说,电话线与电话机之间需要一个插座(相当于两者之间的接口,这一部分装置物理上是存在的).对于网络编程,socket就相当于电话线与电话机之间的插座.        将电话系统与面向连接的Socket机制相比,两者之间有着

Visual C#.Net 网络程序开发-Socket篇第1/2页_C#教程

Visual C#.Net 网络程序开发-Socket篇   作者: 宋华  作者: www.ASPCool.com  Microsoft.Net Framework为应用程序访问Internet提供了分层的.可扩展的以及受管辖的网络服务,其名字空间System.Net和System.Net.Sockets包含丰富的类可以开发多种网络应用程序..Net类采用的分层结构允许应用程序在不同的控制级别上访问网络,开发人员可以根据需要选择针对不同的级别编制程序,这些级别几乎囊括了Internet的所有需

Linux网络编程之socket文件传输示例_C 语言

本文所述示例程序是基于Linux平台的socket网络编程,实现文件传输功能.该示例是基于TCP流协议实现的socket网络文件传输程序.采用C语言编写.最终能够实现传输任何格式文件的文件传输程序. 具体实现代码如下: Server端代码如下: /************************************************************************* > File Name: Server.c > Author: SongLee ***********

C#.Net网络程序开发-Socket篇

程序|网络 Microsoft.Net Framework为应用程序访问Internet提供了分层的.可扩展的以及受管辖的网络服务,其名字空间System.Net和System.Net.Sockets包含丰富的类可以开发多种网络应用程序..Net类采用的分层结构允许应用程序在不同的控制级别上访问网络,开发人员可以根据需要选择针对不同的级别编制程序,这些级别几乎囊括了Internet的所有需要--从socket套接字到普通的请求/响应,更重要的是,这种分层是可以扩展的,能够适应Internet不断

linux网络编程之socket(九) 使用select函数改进客户端/服务器端程序

一.当我们使用单进程单连接且使用readline修改后的客户端程序,去连接使用readline修改后的服务器端程序,会出 现一个有趣的现象,先来看输出: 先运行服务器端,再运行客户端, simba@ubuntu:~/Documents/code/linux_programming/UNP/socket$ ./echoser_recv_peek recv connect ip=127.0.0.1 port=54005 simba@ubuntu:~/Documents/code/linux_prog

linux网络编程之socket(四)

使用fork并发处理多个client的请求和对等通信p2p 一.在前面讲过的回射客户/服务器程序中,服务器只能处理一个客户端的请求,如何同时服务多个客户端呢?在未讲到 select/poll/epoll等高级IO之前,比较老土的办法是使用fork来实现.网络服务器通常用fork来同时服务多个客户端,父 进程专门负责监听端口,每次accept一个新的客户端连接就fork出一个子进程专门服务这个客户端.但是子进程退出时会产 生僵尸进程,父进程要注意处理SIGCHLD信号和调用wait清理僵尸进程,最

linux网络编程之socket(二) C/S程序的一般流程和基本socket函数

一.基于TCP协议的网络程序 下图是基于TCP协议的客户端/服务器程序的一般流程: 服务器调用socket().bind() .listen()完成初始化后,调用accept()阻塞等待,处于监听端口的状态,客户端调用socket()初始化后,调用connect() 发出SYN段并阻塞等待服务器应答,服务器应答一个SYN-ACK段,客户端收到后从connect()返回,同时应答一个ACK段,服务 器收到后从accept()返回. 数据传输的过程: 建立连接后,TCP协议提供全双工的通信服务,但是

linux网络编程之socket(一) socket概述和字节序、地址转换函数

一.什么是socket socket可以看成是用户进程与内核网络协议栈的编程接口. socket不仅可以用于本机的进 程间通信,还可以用于网络上不同主机的进程间通信. socket API是一层抽象的网络编程接口,适用于各种底层网络协议,如IPv4.IPv6,以及以后要讲的UNIX Domain Socket.然而,各种网络协议的地址格式并不相同,如下图所示: IPv4和IPv6的地址格式定义在netinet/in.h 中,IPv4地址用sockaddr_in结构体表示,包括16位端口号和32位