精华内容
下载资源
问答
  • Socket Tcp C#

    千次阅读 2017-02-22 16:16:22
    Socket Tcp CSharpSocket TCP C#版本,客户端以及服务端的简单封装,使用vs2015编写 - 1:客户端发送和接收。 - 2:服务端发送和接收。 - 3:发送和接收队列处理。 - 4:数据的分发,MsgCenter.cs,根据具体情况...

    Socket Tcp CSharp

    Socket TCP C#版本,客户端以及服务端的简单封装,使用vs2015编写
    - 1:客户端发送和接收。
    - 2:服务端发送和接收。
    - 3:发送和接收队列处理。
    - 4:数据的分发,MsgCenter.cs,根据具体情况做参考。
    - 5:Tcp粘包处理,本程序默认以数据前4位作为长度判断,请根据实际情况修 SocketClient 和 SocketServer 的 OnReceive 函数。
    - 6:生成数据的时候,请注意数字类型的高低位。C++和JAVA是由低到高,C#是由高到低,请自行修改。
    - 7:谷歌ProtocolBuffer的使用。

    ProtocolBuffer官方库dll生成指导:
    http://blog.csdn.net/aslanchen/article/details/56840399


    github:https://github.com/Aslanchen/SocketTcpCSharp

    展开全文
  • socket TCP/UDP通信实验

    千次阅读 2018-05-31 09:00:12
    socket TCP/UDP通信实验 socket TCP/UDP通信实验 TCP通信 TCP通信服务流程 TCP客户端代码 TCP服务器代码 UDP通信 UDP通信服务流程 UDP客户服务代码 UDP服务器代码 TCP通信 TCP通信服务流程 ...

    socket TCP/UDP通信实验

    TCP通信

    TCP通信服务流程

    Alt text

    TCP客户端代码

    #include <stdio.h>
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <strings.h>
    #include <arpa/inet.h>
    #include <unistd.h>
    #include <linux/in.h>
    #include <memory.h>
    #define PORT 8888
    int main() {
        int sock_service;
        struct sockaddr_in addr_service;
    
        sock_service = socket(AF_INET, SOCK_STREAM, 0);
        if (sock_service == -1) {
            perror("socked error\n");
            return 0;
        }
    
        addr_service.sin_family = AF_INET;
        addr_service.sin_port = htons(PORT);
        addr_service.sin_addr.s_addr = htonl(INADDR_ANY);
        bzero(&(addr_service.sin_zero), 8);
        inet_pton(AF_INET, "127.0.0.1", &addr_service.sin_addr);
        connect(sock_service, (struct sockaddr*) &addr_service, sizeof(struct sockaddr));
        char buffer[1024];
        int size=0;
        while(1){
         size=read(0,buffer,1024);//从终端读入数据
         if(size>0){
             write(sock_service,buffer,size);//发送数据
             size=read(sock_service,buffer,1024); //从服务器得到数据
             write(1,buffer,size);//在终端显示读到的数据
         }
        }
        close(sock_service);
    }

    TCP服务器代码

    #include <stdio.h>
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <strings.h>
    #include <arpa/inet.h>
    #include <unistd.h>
    #include <linux/in.h>
    #include <memory.h>
    
    #define PORT 8888
    
    int main() {
        int sock_service, sock_client;
        struct sockaddr_in addr_service, addr_client;
        //服务器socket 
        sock_service = socket(AF_INET, SOCK_STREAM, 0);
        if (sock_service == -1) {
            perror("socked error\n");
            return 0;
        }
    
        addr_service.sin_family = AF_INET;
        addr_service.sin_port = htons(PORT);
        addr_service.sin_addr.s_addr = htonl(INADDR_ANY);
        bzero(&(addr_service.sin_zero), 8);
        if (bind(sock_service, (struct sockaddr *) &addr_service, sizeof(struct sockaddr)) == -1) {
            perror("bind error\n");
            return 0;
        }//绑定端口
        if (listen(sock_service, 5) == -1) {
            perror("listen error\n");
            return 0;
        }//监听端口
        int addr_length = sizeof(struct sockaddr_in);
        sock_client = accept(sock_service, &addr_client, &addr_length);
        while (1) {
            if (sock_client == -1) {
                sock_client = accept(sock_service, &addr_client, &addr_length);//等待连接,并得到客户端信息
                continue;
            } else {
                char buffer[1024];
                int size = read(sock_client, buffer, 1024);//读取客户端发送的数据
                if(size>0) {
                    printf("message:");
                    write(1, buffer, size);
                    sprintf(buffer, "recieved %d bytes\n", size);
                    write(sock_client, buffer, strlen(buffer));
                }
            }
        }
        close(sock_client);
    }

    UDP通信

    UDP通信服务流程

    Alt text

    UDP客户服务代码

    #include <stdio.h>
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <strings.h>
    #include <arpa/inet.h>
    #include <unistd.h>
    #include <linux/in.h>
    #include <memory.h>
    
    #define PORT 8888
    
    int main() {
        int s;
        struct sockaddr_in addr_service,addr_client;
    
        s = socket(AF_INET, SOCK_DGRAM, 0);
        if (s == -1) {
            perror("socked error\n");
            return 0;
        }
    
        addr_service.sin_family = AF_INET;
        addr_service.sin_port = htons(PORT);
        addr_service.sin_addr.s_addr = htonl(INADDR_ANY);
        bzero(&(addr_service.sin_zero), 8);
        char buffer[128];
        int size=0;
        int length= sizeof(struct sockaddr);
        while(1){
         size=read(0,buffer,128);
         if(size>0){
             sendto(s,buffer,128,0,(struct sockaddr*)&addr_service,sizeof(struct sockaddr));
             int n=recvfrom(s,buffer,128,0,(struct sockaddr*)&addr_client,&length);
             printf("client received:%s",buffer);
         }
        }
        close(s);
    }

    UDP服务器代码

    #include <stdio.h>
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <strings.h>
    #include <arpa/inet.h>
    #include <unistd.h>
    #include <linux/in.h>
    #include <memory.h>
    
    #define PORT 8888
    
    int main() {
        int sock_service;
        struct sockaddr_in addr_service, addr_client;
    
        sock_service = socket(AF_INET, SOCK_DGRAM, 0);
        if (sock_service == -1) {
            perror("socked error\n");
            return 0;
        }
    
        addr_service.sin_family = AF_INET;
        addr_service.sin_port = htons(PORT);
        addr_service.sin_addr.s_addr = htonl(INADDR_ANY);
        bzero(&(addr_service.sin_zero), 8);
        if (bind(sock_service, (struct sockaddr *) &addr_service, sizeof(struct sockaddr)) == -1) {
            perror("bind error\n");
            return 0;
        }
        int length= sizeof(struct sockaddr);
        while (1){
            char buffer[128];
            int n=recvfrom(sock_service,buffer,128,0,(struct sockaddr*)&addr_client,&length);
            printf("service received:%s",buffer);
            sendto(sock_service,buffer,n,0,(struct sockaddr*)&addr_client,sizeof(struct sockaddr));
        }
        close(sock_service);
    }
    展开全文
  • c#与PLC通过SocketTcp通讯代码

    热门讨论 2013-07-01 09:29:37
    c#与PLC通过SocketTcp通讯代码.仅通讯部分,不包含协议解析
  • Python socket TCP多线程服务器 by 郑瑞国 1、建立网络套接字s 2、绑定地址 3、监听 4、接受客户端连接 5、多线程处理客户端消息 ''' import socket import threading s = socket.socket() #1、建立网络套接字s s....
    '''
    Python socket TCP多线程服务器 by 郑瑞国
    1、建立网络套接字s
    2、绑定地址
    3、监听
    4、接受客户端连接
    5、多线程处理客户端消息
    '''
    import socket
    import threading
    
    s = socket.socket()                                          #1、建立网络套接字s
    s.bind(('0.0.0.0',9999))                                     #2、绑定地址
    s.listen(5)                                                  #3、监听
    def handle(client,addr):
        while True:
            try:
                text = client.recv(1024)
                if not text:
                    client.close()
                client.send(text)
                print(addr[0],addr[1],'>>',text.decode())
            except:
                print(addr[0],addr[1],'>>say goodby')
                break
        
    while True:
        client,addr=s.accept()                                   #4、接受客户端连接
        threading._start_new_thread(handle,(client,addr))        #5、多线程处理客户端消息

     

    展开全文
  • Linux Socket TCP通信

    千次阅读 2012-03-31 09:49:27
    /*socket tcp服务器端*/ #include #include #include #include #include #include #include #include #include #include #include #include #define SERVER_PORT 5555 int main() { int ser

    1. Server端

    /*socket tcp服务器端*/
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <errno.h>
    #include <netdb.h>
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <arpa/inet.h>
    
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <unistd.h>
    
    #define SERVER_PORT 5555
    
    int main()
    {
    	int serverSocket;
    	struct sockaddr_in server_addr;
    	struct sockaddr_in clientAddr;
    	int addr_len = sizeof(clientAddr);
    	int client;
    	char buffer[200];
    	int iDataNum;
    
    	if((serverSocket = socket(AF_INET, SOCK_STREAM, 0)) < 0)
    	{
    		perror("socket");
    		return 1;
    	}
    
    	bzero(&server_addr, sizeof(server_addr));
    	server_addr.sin_family = AF_INET;
    	server_addr.sin_port = htons(SERVER_PORT);
    	server_addr.sin_addr.s_addr = htonl(INADDR_ANY);
    	if(bind(serverSocket, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0)
    	{
    		perror("connect");
    		return 1;
    	}
    
    	if(listen(serverSocket, 5) < 0) 
    	{
    		perror("listen");
    		return 1;
    	}
    
    	while(1)
    	{
    		printf("Listening on port: %d\n", SERVER_PORT);
    		client = accept(serverSocket, (struct sockaddr*)&clientAddr, (socklen_t*)&addr_len);
    		if(client < 0)
    		{
    			perror("accept");
    			continue;
    		}
    		printf("\nrecv client data...n");
    		printf("IP is %s\n", inet_ntoa(clientAddr.sin_addr));
    		printf("Port is %d\n", htons(clientAddr.sin_port));
    		while(1)
    		{
    			iDataNum = recv(client, buffer, 1024, 0);
    			if(iDataNum < 0)
    			{
    				perror("recv");
    				continue;
    			}
    			buffer[iDataNum] = '\0';
    			if(strcmp(buffer, "quit") == 0)
    				break;
    			printf("%drecv data is %s\n", iDataNum, buffer);
    			send(client, buffer, iDataNum, 0);
    		}
    	}
    	return 0;
    }

    2. client端

    /*socket tcp客户端*/
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <errno.h>
    #include <netdb.h>
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <arpa/inet.h>
    
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <unistd.h>
    
    #define SERVER_PORT 5555
    
    int main()
    {
    	int clientSocket;
    	struct sockaddr_in serverAddr;
    	char sendbuf[200];
    	char recvbuf[200];
    	int iDataNum;
    	if((clientSocket = socket(AF_INET, SOCK_STREAM, 0)) < 0)
    	{
    		perror("socket");
    		return 1;
    	}
    
    	serverAddr.sin_family = AF_INET;
    	serverAddr.sin_port = htons(SERVER_PORT);
    	serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
    	if(connect(clientSocket, (struct sockaddr *)&serverAddr, sizeof(serverAddr)) < 0)
    	{
    		perror("connect");
    		return 1;
    	}
    
    	printf("connect with destination host...\n");
    
    	while(1)
    	{
    		printf("Input your world:>");
    		scanf("%s", sendbuf);
    		printf("\n");
    
    		send(clientSocket, sendbuf, strlen(sendbuf), 0);
    		if(strcmp(sendbuf, "quit") == 0)
    			break;
    		iDataNum = recv(clientSocket, recvbuf, 200, 0);
    		recvbuf[iDataNum] = '\0';
    		printf("recv data of my world is: %s\n", recvbuf);
    	}
    	close(clientSocket);
    	return 0;
    }


    展开全文
  • C# Socket TCP和UDP报文及端口测试工具的开发(提供源码)万能超好测试工具
  • 关于socket tcp 断线重连

    千次阅读 2017-04-16 15:49:49
    首先写一个最简易的socket tcp程序,连接成功后再关闭服务器然后再用客户端各种操作看是什么情况 测试表明 (1)客户端已经连接,当服务端关闭程序时,客户端调用send函数发送失败,WSAGetLastError() 返回...
  • public class SocketTcp { public SocketTcp() { // //TODO: 在此处添加构造函数逻辑 // } /// /// Socket套接字 /// public static Socket _Socket = null; ///
  • socket tcp网络问题

    2020-08-05 19:26:10
    服务器(香港)采用IOCP方式,客户端(手机APP)就是普通的socket 使用移动4G连接服务器,有时候是正常的能接受发送消息。有时只能连接成功,然后发送一两个消息,就不能接收接下来的消息。 其他电信、联通、wifi...
  • C++实现windows环境下Socket TCP文件传输

    千次阅读 2019-07-02 17:12:42
    C++实现windows环境下Socket TCP文件传输 server端: #include <stdio.h> #include <iostream> #include <cstring> #include <fstream> #include <winsock2.h> #pragma comment...
  • Socket TCP 完整实例

    千次阅读 2020-08-04 17:03:20
    (提示:CSDN资源下载会自动增长积分,本来自己写的Socket.Helper 想免费分享一下,结果积分一直在涨,所以把实例发出来。遇到问题可以直接留言) 一 客户端: using Server; using System; using System....
  • Unity Socket TCP

    千次阅读 2015-07-01 13:02:25
    public static Socket hSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); /// ///修改配置信息 /// ///ip地址 端口 类型:TCP/UDP public static void ...
  • 认识Socket TCP编程 二、实验内容 (1)命令行界面要可以带多个参数(出程序名之外至少有2个参数,一个是选项,另一个是选项作用的对象。参看ping,netstat等命令) (2)如何实现多个用户连接同一个服务器 (3)...
  • 熟悉Socket TCP编程,实现一个简单的HTTP客户端 二、实验内容 向指定的web服务器发送HTTP请求,服务器响应,获取服务器的首页(主页),在客户端显示该主页的主要信息(HTTP版本号等和HTML文档的部分内容),不解析...
  • socket tcp 产生 rst响应的情况

    千次阅读 2012-05-19 23:43:39
    socket tcp 产生 rst响应的情况(属于硬错误) 1. syn发送到服务器主机,但是目的端口并未运行。则产生一个ECONRFUSED错误。客户端立即返回。比如telnet 192.168.1.55 8889,条件:55主机在局域网上并且可达(也...
  • Socket TCP粘包拆包

    千次阅读 2015-12-03 01:26:12
    TCP(transport control protocol,传输控制协议)是面向连接的,面向流的,提供高可靠性服务。收发两端(客户端和服务器端)都要有一一成对的socket,因此,发送端为了将多个发往接收端的包,更有效的发到对方,...
  • Haproxy socket tcp 通讯配置

    千次阅读 2018-08-06 14:09:36
    global log 127.0.0.1 local2 pidfile /home/ap/acs/webapps/haproxy/haproxy.pid maxconn 4000 daemon defaults mode tcp log global option tcp...
  • C++ socket TCP网络编程

    千次阅读 2019-04-09 20:09:26
    m_slisten = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (m_slisten == INVALID_SOCKET) { printf("%d\n", WSAGetLastError()); printf("%s\n", "Socket Error!"); return ; } struct sockaddr_in ...
  • Author:阿冬哥 Created:2013-4-17  Blog:http://blog.csdn.net/c359719435/ Copyright 2013 阿冬哥 http://blog.csdn.net/c359719435/ ...1 设置socket tcp缓冲区大小的疑惑  疑惑1:通过setsockopt
  • MFC中socket TCP编程问题

    2015-06-01 12:42:11
    我在控制台用sockettcp编程,测试完全没有问题。但是把它直接用在MFC对话框的一个按钮中,先点击服务器端的按钮,再点击客户端的按钮后,服务器端就死机了,一直就是未响应。。求救\("▔□▔)/谢谢!
  • python socket TCP协议断网重连

    千次阅读 2020-03-08 14:07:17
    客户端需要把温湿度数据传到服务器上,每次传输约300个传感器的数据,大约3000个字节,我选用了Python的socket模块,完成这个项目时,最大的阻碍就是断网重连问题。 我设置的超时时间为60秒,采用阻塞模式,测试发现...
  • 目标:我希望通过套接字的TCP传输来搭建一个服务器,这个服务器的作用是:接受多个客户端的连接并完成他们的相互通信。比如客户端A,客户端B同时连接到服务器S,客户端A向服务器S发送消息,服务器S会将A的消息转发给...
  • C# Socket TCP发送图片与接收图片

    千次阅读 2019-02-26 15:25:50
    发送端: FileStream fs = new FileStream(@"7.jpg", FileMode.Open); private void SendImage() { //实例化socket Socket socket = new Socket(AddressFamily.Inte...
  • 使用socket tcp实现简单的文件传输

    万次阅读 多人点赞 2018-07-13 10:33:32
    流程如下:server:1、创建socket,绑定端口10002,等待client连接;2、链接后打开需要发送的文件,计算文件长度并发送长度,等待接收客户端响应;3、客户端响应ok后,发送文件数据,发送缓冲定位8192;4、发送结束...
  • python2.7 socket TCP 通讯

    千次阅读 2017-05-18 22:33:55
    client = socket(AF_INET , SOCK_STREAM) client.connect(addr) print client.recv(bufsize) while True : data = raw_input () if not data or data == 'exit' : break msg = '%s' % data ...
  • Socket TCP Ping使用小结

    千次阅读 2015-05-15 16:33:42
    TCP Ping 检测网络延迟原理是,先在客户端和服务端建立一个tcp连接,然后发出一个检测包,测量响应时间。socket连接,发送/接收数据,发送数据如何遵守HTTP协议,如何设置connection/send/revc的timeout
  • 简单描述一下需求:我这里需要通过socket客户端长连接一直不停的往服务器发送数据,我这边也对socket就行判断了,如果连接不上就关闭再重新连接,过几个小时就会出现连接超时的情况,大致就是这样,求大神指教。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 69,039
精华内容 27,615
关键字:

sockettcp