第一个socket服务端程序

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <winsock2.h>
#include <ws2tcpip.h>

void error_handling(char *message);

int main(int argc, char *argv[]) {
    int serv_sock;
    int clnt_sock;

    struct sockaddr_in serv_addr;
    struct sockaddr_in clnt_addr;
    socklen_t clnt_addr_size;

    char message[] = "Hello, World!";

    if (argc != 2) {
        printf("Usage : %s port\n", argv[0]);
        exit(1);
    }

    serv_sock = socket(PF_INET, SOCK_STREAM, 0);
    if (serv_sock == -1) {
        error_handling("socket() error");
    }

    return 0;
}

void error_handling(char *message) {
    fputs(message, stderr);
    fputc('\n', stderr);
    exit(1);
}

原文地址:https://www.cnblogs.com/tangyouwei/p/9837491.html

时间: 2024-10-14 10:26:53

第一个socket服务端程序的相关文章

最简单的一个socket服务端

描述:这是一个socket服务端,可以用串口调试工具连接和发送数据过来 package com.thinkgem.wlw.modules.lhjh.socket.tstandard; import java.io.BufferedInputStream; import java.io.DataInputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import j

一个简单的客户单与服务端程序

实验环境是linux系统,效果如下: 1.启动服务端程序,监听在6666端口上  2.启动客户端,与服务端建立TCP连接  3.建立完TCP连接,在客户端上向服务端发送消息 4.断开连接 实现的功能很简单,但是对于初来乍到的我费了不少劲,因此在此总结一下,如有错点请各位大神指点指点 什么是SOCKET(插口): 这里不用 "套接字" 而是用 "插口" 是因为在<TCP/IP协议卷二>中,翻译时也是用 "插口" 来表示socket的.

select引起的服务端程序崩溃问题

现象: 某个线上的服务最近频繁崩溃.该服务使用C++编写,是个网络服务端程序.作为TCP服务端,接收和转发客户端发来的消息,并给客户端发送消息.该服务跑在CentOS上,8G内存.线上环境中,与客户端建立的TCP连接大约在3~4万左右. 使用GDB查看每次崩溃产生的core文件,发现崩溃时的函数调用栈每次都各不相同,而且有时会发生在比较奇怪的地方,比如标准库std::string的析构函数中. 该线上服务崩溃之后,会有监控进程进行重启,因此暂时不会造成太大的影响. 复现: 先尝试在自己的虚拟机环

C#下用select方法实现socket服务端

select是一种比较古老但一直被证明性能很好的socket模式,它可以让你以消息驱动的模式书写socket程序.网上C++的例子很多,但C#的例子极少. 上代码: namespace Server { class Program { // Thread signal. public static ManualResetEvent allDone = new ManualResetEvent(false); private static Socket handler = null; privat

C# Socket服务端与客户端通信(包含大文件的断点传输)

步骤: 一.服务端的建立 1.服务端的项目建立以及页面布局 2.各功能按键的事件代码 1)传输类型说明以及全局变量 2)Socket通信服务端具体步骤:   (1)建立一个Socket   (2)接收信息   (3)发送数据(这里分发送字符串.文件(包含大文件).震动) 二.客户端的建立 1.服务端的项目建立以及页面布局 2.各功能按键的事件代码 1)传输类型说明以及全局变量 2)Socket通信服务端具体步骤:   (1)建立一个Socket   (2)接收信息   (3)发送数据(这里分发送

用socaket编写客户端与服务端程序相互发送消息

//运行环境:eclipse || MyEclipse package socaket; //这些类全放在socaket的包下 //这是服务器端消息发送类 import java.io.IOException;import java.io.PrintWriter;import java.net.Socket;import java.util.Scanner; public class ServerChatSend extends Thread {//服务端发送线程 Socket ssk = nu

Socket服务端一直收空包的原因与解决方法

最近做socket服务端,大部分时候系统是正常的,但是运行个一段时间就会一直以超高的频率收到很多数据,一开始以为是下位机上报的,没怎么上心,后来下位机工程师说他们没上报,所以重新看了下代码,发现程序会一直调用 netStream.BeginRead,EndRead,一直收数据,而且受到的数据包都是0字节,百度了20分钟,大神们说socket客户端正常关闭的时候服务端会收到一个长度是0的数据包,如果一直循环调用会一直收到,原话如下 出现原因:一.用户正常退出,这时你还循环调用了Receive方法时

使用NewLife网络库构建可靠的自动售货机Socket服务端(一)

最近有个基于tcp socket 协议和设备交互需求,想到了新生命团队的各种组件,所以决定用NewLife网络库作为服务端来完成一系列的信息交互. 第一,首先说一下我们需要实现的功能需求吧 1,首先客户有一堆自动售货机的设备,设备连接socket服务端后 定时发送设备实时状态作为心跳信息,并且服务端需要下发信息予以确认. 2,需要知道设备的实时在线状态 3,设备需要实现微信,支付宝扫码支付需求,当客户买东西的时候选择扫码支付时,设备上报产品价格信息,支付方式,服务器下发微信或者支付宝的当面付二维

socket服务端和客户端

#!/usr/bin/env python#encoding: utf-8import socketdef handle_request(client): buf = client.recv(1024) client.send("HTTP/1.1 200 OK\r\n\r\n") client.send("Hello, World") def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREA