首页 > 其他分享 >tcp客户端通信

tcp客户端通信

时间:2024-06-05 21:37:41浏览次数:21  
标签:addr int 通信 tcp client 客户端 include socket

网络编程

客户端通信

代码

/*************************************************************************************
 *
 *  file name:  1.c
 *  author   : 	[email protected]
 *  date     :  2024/06/05
 *  function : 	tcp客户端通信
 *  note	 :  none
 *  CopyRight (c)   2024    [email protected]   All Right Reserved
 *
 ************************************************************************************/

#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <errno.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/udp.h>
#include <stdlib.h>
#include <string.h>
#include <netinet/tcp.h>
#include <unistd.h>

int main(int argc,char *argv[])
{
    char buf[128];
    int tcp_socket = socket(AF_INET,SOCK_STREAM, 0);
    if (argc != 2)
	{
		printf("Invalid argc");
		exit(1);
	}
	if (tcp_socket == -1)
	{
		fprintf(stderr, "tcp socket error,errno:%d,%s\n",errno,strerror(errno));
		exit(1);
	}
	struct sockaddr_in  client_addr;

	client_addr.sin_family 		= AF_INET; 						//协议族,是固定的
	client_addr.sin_port   		= htons(atoi(argv[1]));			//目标端口,必须转换为网络字节序
	client_addr.sin_addr.s_addr   = inet_addr(argv[2]);		//目标地址 "192.168.64.xxx"  已经转换为网络字节序  INADDR_ANY

    // bind(tcp_socket,(struct sockaddr *)&host_addr, sizeof(host_addr));
    int i = connect(tcp_socket,(struct sockaddr *)&client_addr,sizeof(client_addr));
    if(i<0)
    {
        fprintf(stderr, "connect error,errno:%d,%s\n",errno,strerror(errno));
		exit(1);
    }
    while(1)
    {
        printf("请输入你需要发送的内容\n");
        scanf("%s",buf);
        write(tcp_socket,buf,sizeof(buf));
        bzero(buf,sizeof(buf));
    }

}

运行结果

image
image

标签:addr,int,通信,tcp,client,客户端,include,socket
From: https://www.cnblogs.com/lu-ciana/p/18233837

相关文章

  • http1.1 的默认长连接 Connection: keep-alive 与 TCP KeepAlive 之间区别
     HTTP长连接,也称为HTTP持久连接(HTTPPersistentConnection)或HTTP连接重用,是一种在HTTP协议中实现的机制。在传统的HTTP通信中,每个HTTP请求和响应都会伴随着TCP连接的建立和关闭,这在高并发场景下会增加网络开销和延迟。而HTTP长连接则允许客户端和服务器在完成......
  • 【专题】2024客户端游戏市场营销发展报告合集PDF分享(附原数据表)
    原文链接:https://tecdat.cn/?p=36402原文出处:拓端数据部落公众号报告合集显示,中国客户端游戏市场在2023年创新高,达到662.83亿元,表明精品化和跨端生态趋势对市场的推动作用。报告合集强调客户端游戏的独特优势,如精品内容、视听体验和操作反馈等,促进了市场稳定增长。客户端游戏生......
  • TCP传输协议
    TCP传输协议TCP是一种面向连接的传输协议,提供可靠的数据传输服务。它通过一系列机制确保数据从发送方准确无误地传送到接收方。实现可靠性的原理1、三次握手建立连接第一次握手:客户端发送一个SYN(同步序列号)包给服务器,表明客户端希望建立连接。第二次握手:服务器接收到SYN包,发......
  • 网络编程练习题---利用TCP协议完成客户端与服务端点对点通信
    目录题目一解析代码实现题目二:解析代码实现tcp_client.ctcp_server.c题目一设计程序实现解析www.baidu.com的域名,把获取到的百度的IP地址全部输出到终端并验证是否正确。解析主机打算响应某个网站的网络请求,但是只知道网站域名是无法通信的,需要对域名进行地址解析,得到网站的公......
  • Qt OPC UA通信
    介绍OPCUA全称OpenPlatformUnifiedArchitecture,开放平台统一架构,是工业自动化领域通用的数据交换协议,它有两套主要的通信机制:1.客户端-服务器通信;2.发布订阅。Qt对OPCUA通信标准也提供了支持,目前还是第三方库的形式(不过Qt官方貌似有文档了),基于open62541开源库进行了封装,使得......
  • 基于c语言的UDP客户端、服务端二合一基础代码
    基于c语言的UDP客户端、服务端二合一基础代码示意图:准备好了吗,以下是基础代码:/****************************************************************************************************************************************字节序:数据以字节流的方式进行传输,底层都是......
  • 基于c语言的TCP客户端、服务端基础代码
    基于c语言的TCP客户端、服务端基础代码基本流程:客户端:#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>#include<stdio.h>#include<errno.h>#include<sys/socket.h>#include<netinet/in.h>#include<netinet/......
  • 网络编程中UDP协议通信
    #include<stdio.h>#include<sys/types.h>#include<sys/socket.h>#include<errno.h>#include<stdlib.h>#include<time.h>#include<string.h>#include<netinet/ip.h>#include<netinet/in.h>#include&......
  • TCP概述
    概述TPC:传输控制协议,TCP协议是面向连接的、可以实现端对端通信的可靠的协议。TCP协议传输数据时会为每个字节分配一个序列号,通过这个序列号就可以判断数据是否重复到达以及数据是否丢失,还可以通过序列号对数据进行排序。报首格式TCP建立连接的三次握手过程TCP三次挥手过......
  • 进程间的通信(信号通信)
    进程间的通信(信号通信)进程的信号通信是操作系统中进程间通信(IPC)的一种方式,它允许一个进程向另一个进程发送一个信号,从而改变另一个进程的状态或执行某个操作。信号是异步的,意味着信号的发送和接收并不依赖于接收进程的执行状态。信号通信的基本概念信号类型:操作系统定义了一系......