多种语言socket编程集锦—win32

原文 http://www.blogjava.net/huyi2006/articles/263831.html

借此地方整理以下socket编程的多种语言的实现,socket可以跨平台的通信,因此多语言、多平台下的实现有必要了解的。代码都是源自网上,感谢网友的分享。

socket编程在windows下的C语言实现,dev C++下编译通过
编译时设置编译选项 工具-->编译选项-->编译器,勾选在连接器命令行加入以下命令,在对话框中填-lwsock32
//server.c
#include <stdio.h>
#include <Winsock2.h>
int main()
{
    WORD wVersionRequested;
    WSADATA wsaData;
    int err;
    
    wVersionRequested = MAKEWORD( 1, 1 );
    
    err = WSAStartup( wVersionRequested, &wsaData );
    if ( err != 0 ) {
        return;
    }
    
    if ( LOBYTE( wsaData.wVersion ) != 1 ||
    HIBYTE( wsaData.wVersion ) != 1 ) {
        WSACleanup();
        return;
    }
    SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);
    
    SOCKADDR_IN addrSrv;
    addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
    addrSrv.sin_family=AF_INET;
    addrSrv.sin_port=htons(6000);
    
    bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
    
    listen(sockSrv,5);
    
    SOCKADDR_IN addrClient;
    int len=sizeof(SOCKADDR);
    while(1)
    {
        SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);
        char sendBuf[50];
        sprintf(sendBuf,"Welcome %s to here!",inet_ntoa(addrClient.sin_addr));
        send(sockConn,sendBuf,strlen(sendBuf)+1,0);
        char recvBuf[50];
        recv(sockConn,recvBuf,50,0);
        printf("%s\n",recvBuf);
        closesocket(sockConn);
    }
}

//客户端代码
#include <stdio.h>
#include <Winsock2.h>
int main()
{
    WORD wVersionRequested;
    WSADATA wsaData;
    int err;
    
    wVersionRequested = MAKEWORD( 1, 1 );
    
    err = WSAStartup( wVersionRequested, &wsaData );
    if ( err != 0 ) {
        return;
    }
    
    if ( LOBYTE( wsaData.wVersion ) != 1 ||
        HIBYTE( wsaData.wVersion ) != 1 ) {
        WSACleanup( );
        return;
    }
    SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);
    
    SOCKADDR_IN addrSrv;
    addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
    addrSrv.sin_family=AF_INET;
    addrSrv.sin_port=htons(6000);
    connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
    send(sockClient,"hello",strlen("hello")+1,0);
    char recvBuf[50];
    recv(sockClient,recvBuf,50,0);
    printf("%s\n",recvBuf); 
    closesocket(sockClient);
    WSACleanup();
}

时间: 2024-10-11 17:11:15

多种语言socket编程集锦—win32的相关文章

计算机网络|C语言Socket编程,实现两个程序间的通信

C语言Socket编程,实现两个程序间的通信 server和client通信流程图 在mooc上找到的,使用Socket客户端client和服务端server通信的流程图?? 服务端server 服务端需要 "两个"套接字 : 1.服务端套接字serverSocket 2.客户端connect连接请求时,发来的套接字clientSocket 按流程图来看, server服务端主要就是实现下面几个步骤: 0.WSAStartup初始化 //这个东西也不知道是什么鬼,反正就是要初始化一下,

C语言SOCKET编程指南

1.介绍 Socket 编程让你沮丧吗?从man pages中很难得到有用的信息吗?你想跟上时代去编Internet相关的程序,但是为你在调用 connect() 前的bind() 的结构而不知所措?等等… 好在我已经将这些事完成了,我将和所有人共享我的知识了.如果你了解 C语言并想穿过网络编程的沼泽,那么你来对地方了. 2.读者对象 这个文档是一个指南,而不是参考书.如果你刚开始 socket 编程并想找一本入门书,那么你是我的读者.但这不是一本完全的 socket 编程书. 3.平台和编译器

C语言Socket编程(计算机网络作业)

最近我计算机网络课程要做作业了,没办法跟着老师一步一步的写C语言的代码,使用的计算就是Socket通信发送消息:代码实现的功能很简单,客户端向服务器端发送消息,服务器端接收客户端发来的消息,并且输出显示到屏幕上:代码中的每个方法的返回值都应该做判断出错情况,以保证程序的稳定性,这里只是测试代码. 老师是录制的视频讲解的,其他其中使用的到的方法要求我们自己去查相关的MSDN资料库,如果有不懂的,就自己上网查. 服务器端接收代码: #include <Winsock2.h>#pragma comm

C语言socket编程——linux环境

先写一个服务器端的监听程序,功能室从客户端读取字符,接收到后告知客户端"I got your message: "+收到的消息:server.c ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60

c语言socket编程

1. [代码][C/C++]代码     服务端:////  main.m//  server////  Created by mac on 13-4-15.//  Copyright (c) 2013年 mac. All rights reserved.// #import <Foundation/Foundation.h>#import <sys/types.h>#import <sys/socket.h>#import <netinet/in.h>#i

Go语言系列(九)- Socket编程和Redis

Socket编程 一.socket编程概述 什么是socket编程? socket编程是计算机PC机器上2个程序通过一个双向的通信连接实现数据的交互,这个连接的一端就是一个socket.socket的翻译意思上还有个插座的概念,其实,也可以很形象的比喻为插座插上去了就有通电了(网络通了).socket编程其实作为UNIX系统的进程间通信机制,通常称为“套接字”,用来描述IP地址和端口的集合,在unix系统下是一个通信的句柄(文件描述符,因为UNIX下所有都是文件). UNIX socket编程的

Go语言之Go语言网络编程

GO 语言网络编程 Go 语言Socket编程 TCP Socket Go语言的 net 包中有一个 TCPConn 类型,可以用来建立 TCP 客户端和 TCP 服务器端间的通信通道,TCPConn 类型里有两个主要的函数: func (c *TCPConn) Write(b []byte) (n int, err os.Error) func (c *TCPConn) Read(b []byte) (n int, err os.Error) CPConn 可以用在客户端和服务器端来读写数据.

winsock教程- windows下的socket编程(c语言实现)

winsock教程- windows下的socket编程(c语言实现) 使用winsock进行socket 编程 这是一个学习windows下socket编程(c语言)的快速指南.这是因为一下代码片段只能运行在windows下.windows API中的socket编程部分叫做winsock. 你电脑上做出的任何网络通信背后基本上都有socket,它是一个网络的基本组成部分.举个例子说当你在浏览器键入www.google.com的时候,socket连接到google.com并且取回那个页面然后才

Go语言TCP Socket编程

Golang的主要 设计目标之一就是面向大规模后端服务程序,网络通信这块是服务端 程序必不可少也是至关重要的一部分.在日常应用中,我们也可以看到Go中的net以及其subdirectories下的包均是"高频+刚需",而TCP socket则是网络编程的主流,即便您没有直接使用到net中有关TCP Socket方面的接口,但net/http总是用到了吧,http底层依旧是用tcp socket实现的. 网络编程方面,我们最常用的就是tcp socket编程了,在posix标准出来后,s